《关于前端的一些小问题》
jquery 相关问题
换行省略号
由于中文字符换行和英文字符换行截断方式不同,导致样式上出现问题

以上是设置了单词换行后显示省略号的样子

以上是不设置单词换行的样子
原因是当长英文链接换行时,英文被作为一个完整单词而不进行换行
上述代码为对 p 标签设置超出 2 行省略多余内容
对于这里的英文链接(被作为单词处理)如果这里没有设置 width:100%的话,内容会超出宽度,导致整体样式被挤出,这会导致原本使用固定样式 fixed 的元素因为这一元素的特殊情况而改变位置,导致一些特殊 bug。
因此给整个 p 标签设置宽度 width 或最大宽度 max-width,首先可以解决样式影响的问题,接着就需要解决如何像其他内容一样超出 2 行显示省略号(如何显示省略号就不写在这了),具体方式就如上方所说,给标签设置单词换行 word-break:break-all 即可解决。
jquery 中的 dropload 插件使用方式
1 | $(function () { |
1 | $(".element").dropload({ |
dropload 插件的参数
有关不同端分享链接时的跳转问题
比如当 pc 端和移动端未使用 h5 方式做响应式而是拆分为两个部分进行开发,应尽量保持文件名相同,比如 pc 文件路径下有 home.html,那么移动端也最好起名 home。尽量避免多个文件对一个文件的情况发生。当遇到 pc 端有 2 个页面,而移动端将两个页面通过 tab 栏显示在一页中时,路由跳转就比较麻烦了。
jquery 处理路由的方式
我们都知道 vue-router 控制路由相当便携,做到 tab 栏切换时切换局部区域和路由简直小菜一碟,但是同类操作在使用 jquery 编写时则比较麻烦,需要使用到 pushState,具体可以参考一下做法。
1 | $(".className").click(function () { |
上述点击事件实现了 tab 栏切换,样式变动,页面内容切换,同时路由产生变化并能够实现实时分享(一般分享是定死的,比如进入某页面 a,即分享该页面 a,所以微信分享方法直接布局在所有页面即可。但如有以下需求场景:进入一个聚合页,该页面通过 tab 切换展示 a,b 两种内容,如果初始进入页面展示的是 a,在页面中切换为 b 再分享,若无路径更改和重新调用分享方法,则分享出去的内容依旧为 a,所以使用上述代码解决这类需求)。
通过上述代码的 pushState api 使得 jquery 也能够做到触发事件时修改页面路径。路由切换问题得到了解决,但是分享内容依旧不生效。此时需要去判断,微信分享 api 触发时机是在什么时候。一般来说,在进入某一页面时,即调用分享 api,因为分享功能是需要获取当前页面 url 的,所以在一进入页面时,就会拿取当前 url。这导致了后续点击 tab 栏触发事件,无论切换多少次路由,提供给分享 api 的 url 链接始终为进页面时的初始 url。
解决方案:在 tab 栏点击事件时,再此调用微信分享 api 拿取当前 url 即可。(注:为避免 tab 栏重复快速切换导致 js 不断被调用,最好添加节流操作)。
移动端判断不同端
1 | if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) { |
- 标题: 《关于前端的一些小问题》
- 作者: Xxd
- 创建于 : 2023-03-11 21:51:04
- 更新于 : 2024-02-07 03:57:05
- 链接: https://blog.xxdoge.site/2023/03/11/《关于前端的一些小问题》/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。