Simditor为什么粘贴后如何跳转到另一个页面页面顶部

版权声明:本文为博主原创文章遵循

版权协议,转载请附上原文出处链接和本声明

为了支持响应式布局的情况下,发现图片宽度是写死的,于是添加了百分比功能

方法 直接修改官方源码
官方版本 和修改文件的下地址

在维持原有功能的情况下,添加图片百分比功能
使用方式 在设置图片大小时填写百分比数值 例孓 10%

原创文章 87获赞 5访问量 1万+


  • “你的鼓励将是我创作的最大动力”
}

接现在增加一个新需求:h5页面B區显示富文本HTML片段。

  • 有一段PC端显示的富文本HTML片段在手机H5页面B区上加载显示

  • 保持PC端的样式缩放适应手机屏幕

  • 如果HTML富文本有图片

  • 当手机可视區间到B区时候,图片触发懒加载显示
  • 点击富文本图时候有弹层加载图片,可放大查看
    • 可以考虑用iframe方式处理富文本
    • 但是要考虑到iframe的父子页媔的通信和兼容性
    • 还有考虑到iframe里富文本图片懒加载导致高度变化带来的父页面的高度自适应

看到需求时第一想到的是只是显示一段富文夲内容,为什么要用iframe直接显示不就行了。 iframe还是有挺多缺点的:

  1. 会产生很多页面不容易管理
  2. 代码复杂,无法被一些搜索引擎索引到这┅点很关键,现在的搜索引擎爬虫还不能很好的处理iframe中的内容所以使用iframe会不利于搜索引擎优化。
  3. 多数小型的移动设备(PDA 手机)无法完全顯示框架设备兼容性差。
  4. 多框架的页面会增加服务器的http请求对于大型网站是不可取的。

这么多缺点为什么还要用呢(关键是我对iframe的使鼡不太熟悉手动微笑。。)
高人指点因为想用iframe隔离全局样式对富文本样式的影响,emmmm确实很有道理。

比如你在全局样式里写了一个樣式:

那么富文本的内容也会受到这个全局样式的影响所有p里面的字体大小都会是18px。这可不是我们想得到的

其实看到这,肯定会想到只要在全局样式里注意一下,不要写一些可能会影响全局的样式就行了比如不写标签的样式。这对于一个新项目可能较为容易去实现如果一个项目已经非常庞大或经过多人的修改,把不规范的样式全部改掉好像有点不太现实

好了,暂时没有想到其他好的办法只能選择iframe。

因为返回的数据是一段html片段所以选择iframe的srcdoc属性(规定在<iframe>中显示的页面的 HTML 内容),我们可以在获取到数据之后对数据进行一些处理(圖片懒加载后面会讲到),然后再字符串拼接成一段完整的HTML
html中设置meta标签,允许用户缩放:

设置body的高度是因为这篇博客需求是接着上篇博客的需求来的(需要实现阻尼效果)在iframe里,我禁用了scroll具体思路可参考。
设置img最大宽度是为了实现图片自适应不会因为太大而超出屏幕。

我这里是先用正则进行替换先显示loading,并用data-src记住图片地址然后再touchmove事件中检测并进行懒加载:
continueLoading是一个标志,当所有图片都加载完成後就不再触发lazyload函数。

这个非常简单了用一个绝对定位的div去显示图片就可以了,div背景色设置成白色(或者是其他你喜欢的颜色)display: none,当點击iframe中的图片时设置div里img标签src的值,并显示div再次点击弹层的图片,隐藏弹层

因为在ifame所在的B区也要实现阻尼效果。其他部分的思路和A区嘚阻尼效果实现思路相同只不过当用户到达页面顶部并下拉到临界值时,使用postmessage通知父页面显示A区隐藏B区。

代码实现的较为粗糙还有佷多可以优化提高的地方。

  • 阻尼效果:AB区实现思路一模一样可考虑抽成公共插件。
  • 图片点击:使用fastclick或zepto对移动端的click事件进行优化
  • 真机调試:只是在Google开发者工具上调试了下,没有在真机上调试估计有点兼容性问题。

具体代码见并详细介绍了项目的使用方法。
因为懒我沒有把这次的代码单独放到一个repo,就和上次的放在一起实在惭愧。。

}

我要回帖

更多关于 如何跳转到另一个页面 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信