better-scroll的使用方法,动态创建dom使用better-scroll
移动端经常会用页面高度超过了手机屏幕的高度,但是有没有滚动条的出现这时候就用 better-scroll 这个插件, iscroll 是常用的但是这个组件没有人在维护了,导致很多的问题没有办法解决。
better scroll 的页面结构为
<div class="shop_box" ref="shopBox">
<div class="shop_container"> <div class="shop_header"> </div> </div>
</div> 第一层 div:
高度固定比如是手机屏幕的高度,overflow-y:hidden;
第二层 div:
高度不固定,只设置宽度 %。
第三层 div:
数据部分,肯能有很多很多
1、vue2 中如何使用 better-scroll
首先安装better-scroll,然后在配置文件中查看
"dependencies": {
"vue": "^2.2.6",
"vue-router": "^2.3.1",
"vue-resource": "^1.3.3",
"better-scroll": "^0.1.7"
},
然后在要用的地方引用这个组件
import BScroll from 'better-scroll';
接下来初始化这个组件,在methods 里面将这个写为一个方法
_initScroll () {
this.shopBoxScroll = new BScroll(this.$refs.shopBox, {
// better-scroll 会将点击事件去掉,要在这里开启,同时点击在PC 会被执行两次,要在这里控制
click: true
});
}
然后在函数钩子里面调用这个方法,因为mvvm 框架的数据是一步的所以要在函数周期里面使用
created () {
this.$nextTick(() => {
this._initScroll();
});
},
在页面中要调用的地方
<div class="shop_box" ref="shopBox">
整体为:
<script>
import starT from '../star/star.vue';
import BScroll from 'better-scroll'; export default {
props: {
seller: {
type: Object
}
},
created () {
this.$nextTick(() => {
this._initScroll();
});
this.classMap = ['min', 'discount', 'guarantee', 'invoice', 'special'];
},
methods: {
_initScroll () {
this.shopBoxScroll = new BScroll(this.$refs.shopBox, {
// better-scroll 会将点击事件去掉,要在这里开启,同时点击在PC 会被执行两次,要在这里控制
click: true
});
}
},
components: {
'v-star': starT
}
};
</script>
(总结):1、在 vue2中如何获取dom 结构
在要获取的dom元素上添加
ref="shopBox"
这样在 js 中
$refs.shopBox便可以获取dom 元素。
有时候经常汇报better-scroll 找不到孩子元素原因是:
html 中 ref="" 中间不要用空格尽量用驼峰命名 2、移动端经常会有这种场景
数据是横行滚动的,这个时候也是better-scroll 只不过这回改成横向滚动的就行
this.picScroll = new BScroll(this.$refs.pic_scroll, {
// better-scroll 会将点击事件去掉,要在这里开启,同时点击在PC 会被执行两次,要在这里控制
click: true,
scrollX: true,
eventPassthrough: 'vertical'
});
3、动态DOM使用 better-scroll
在vue 中如果使用 v-show 控制一个dom的显示隐藏并且这个 dom 中要有 better-scroll 的效果,在v-show 控制显示的地方调用初始化better-scroll的函数便可以,
但是一定要放到this.$nextTick 里面,因为 vue 中 dom都是异步加载。
// 筛选
chooseScreenShop () {
// tab 高两
this.screenTabtHight = !this.screenTabtHight;
// 去除其它高亮显示
this.classification = false;
this.sortHightLight = false;
// 筛选
if (this.screenTabtHight === true) {
this.screenShopList = true;
this.$nextTick(() => {
this._init();
});
// 其他的隐藏
this.sortShopList = false;
this.classificationBox = false;
} else {
this.screenShopList = false;
}
this.dailog();
},
better-scroll 官网地址为:https://www.npmjs.com/package/better-scroll
在这里面有详细的解说
better-scroll的使用方法,动态创建dom使用better-scroll的更多相关文章
- DOM – 7.动态创建DOM + 8.innerText innerHTML value
7.动态创建DOM 8.innerText innerHTML value 7+8 练习:案例:点击按钮动态增加网站列表,分两列,第一列为网站的名字,第二列为带网站超链接的网站名.增加三行常见网站 ...
- jQuery – 7.动态创建Dom、删除节点
动态创建Dom节点 1.使用$(html字符串)来创建Dom节点 2.append方法用来在元素的末尾追加元素 案例:动态生成网站列表 3.prepend,在元素的开始 ...
- JS,Jquery,ExtJs不同脚本动态创建DOM对象
好久不来写东西了,这段时间太慢了,闲了下来看了几篇文章,觉得很好,同时也许咱们大家都能遇到,所以就把它记录下来... 简单使用JavaScript.JQuery.ExtJs进行DOM对象创建的测试,主 ...
- JavaScript DOM编程基础精华02(window对象的属性,事件中的this,动态创建DOM,innerText和innerHTML)
window对象的属性1 window.location对象: window.location.href=‘’;//重新导航到新页面,可以取值,也可以赋值. window.location.reloa ...
- JS、JQuery和ExtJs动态创建DOM对象
做了个简单使用JavaScript.JQuery.ExtJs进行DOM对象创建的测试,主要是使用JavaScript.JQuery.ExtJs动态创建Table对象.动态Table数据填充.多选控制. ...
- Vue.js源码解析-Vue初始化流程之动态创建DOM
目录 前言 一._update 如何判断是初始化还是更新操作? 二.patch 2.1 patch 定义 2.2 初始化的 patch 三.createElm 动态创建DOM 3.1 创建组件节点 3 ...
- 动态创建dom元素
效果图如上所示: 思维nav:就相当于qq空间发表动态(说说),在输入框里输入内容,点击提交(发表),内容就呈现在下面的动态栏里.我这里是准备写一个招聘的app,大家可以随便想象下哪些情况会遇到动态创 ...
- jQuery动态创建DOM节点
var SKU=$("#SKU"); // 通过ID查找到指定表格 var oTable=SKU[0]; // 获取第一个表格 // 获取正文tbody元素 var tBodies ...
- 一看就懂——利用getJSON()与each()方法动态创建内容
一个案例——忘记的时候可以翻阅参考↓<务必放在服务器内才能看效果哟~> html文件内容如下↓ <!DOCTYPE html> <html> <head& ...
随机推荐
- BZOJ 3514 GERALD07加强版 (LCT+主席树)
题目大意:给定n个点m条边无向图,每次询问求当图中有编号为[L,R]的边时,整个图的联通块个数,强制在线 神题!(发现好久以前的题解没有写完诶) 我们要求图中联通块的个数,似乎不可搞啊. 联通块个数= ...
- onunload与onbeforeunload事件解析 标签: 浏览器 2017-04-10 09:46 45人阅读 评论(0)
注:只测试了chrome和IE浏览器的表现情况 onunload事件 //JS Document window.onunload = onunload_message; function onunlo ...
- html_entity_decode()、空格、 乱码问题
普通 ASCII 码空格为 32,但是浏览器会对普通空格进行自动归并,也就是如果你输入10个 0x20 的空格在HTML页面里面,可能会被合并成一个空格. 如果想要一致的呈现多个空格,就要用到 编码标 ...
- Golang - 开篇必须吹牛逼
目录 Golang - 开篇必须吹牛逼 Go牛逼吗 安装环境 Golang - 开篇必须吹牛逼 (1)我们为什么要学 高并发 深度 || 广度 (2)go学习思路和目标 多打多练 掌握go语言 做一个 ...
- mysql中explain用法和结果的含义
explain select * from user explain select * from user explain extended select * from user explain e ...
- 如何用PYTHON的CGIHTTPSERVER模块模拟POST请求?
这次又要逼真一点点,可以弄POST请求啦. 在WEB根目录下新建cgi-bin目录(据说是规模要求),然后运行命令: python -m CGIHTTPServer CGI-BIN目录下,form.p ...
- OpenStack开发基础-oslo.config
The cfg Module cfg Module来自于OpenStack中的重要的基础组件oslo.config,通过cfg Module能够用来通过命令行或者是配置文件来配置一些options,对 ...
- Cloud Card是否能干掉App
算下来有一年没写blog了.这一年算是潜心做一件事情,随着云OS 3.0已公布.总算能够向外界表达了我们想做个啥,非常多人也開始质疑,Cloud Card究竟是个啥?云OS 3.0算不算自主研发的OS ...
- css让文字旋转270度
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD ...
- Myeclipse快捷键备忘
1.编辑类 Ctrl+定义好的类名 链接到你定义好的类的窗口 Ctrl + / 为选中的一段代码加上或去掉注释符 // (必须选中代码块) Ctrl ...
