<div class="city"> <div class="city-wrapper city-wrapper-hook"> <div class="scroller-hook"> <div class="cities cities-hook"></div> </div> <div class="shortcut shortcut-hook"></div> </div> </div>
<script src="js/bscroll.min.js"> </script> <script src="js/city.js"> </script>
var cityWrapper = document.querySelector('.city-wrapper-hook');
var cityScroller = document.querySelector('.scroller-hook');
var cities = document.querySelector('.cities-hook');
var shortcut = document.querySelector('.shortcut-hook');
var scroll;
var shortcutList = [];
var anchorMap = {};
function initCities() {
var y = 0;
var titleHeight = 28;
var itemHeight = 44;
var lists = '';
var en = '<ul>';
cityData.forEach(function (group) {
var name = group.name;
lists += '<div class="title">'+name+'</div>';
lists += '<ul>';
group.cities.forEach(function(g) {
lists += '<li class="item" data-name="'+ g.name +'" data-id="'+ g.cityid +'"><span class="border-1px name">'+ g.name +'</span></li>';
});
lists += '</ul>';
var name = group.name.substr(0, 1);
en += '<li data-anchor="'+name+'" class="item">'+name+'</li>';
var len = group.cities.length;
anchorMap[name] = y;
y -= titleHeight + len * itemHeight;
});
en += '</ul>';
cities.innerHTML = lists;
shortcut.innerHTML = en;
shortcut.style.top = (cityWrapper.clientHeight - shortcut.clientHeight) / 2 + 'px';
scroll = new window.BScroll(cityWrapper, {
probeType: 3 //1 会截流,只有在滚动结束的时候派发一个 scroll 事件。2在手指 move 的时候也会实时派发 scroll 事件,不会截流。 3除了手指 move 的时候派发scroll事件,在 swipe(手指迅速滑动一小段距离)的情况下,列表会有一个长距离的滚动动画,这个滚动的动画过程中也会实时派发滚动事件
});
scroll.scrollTo(0, 0);
}
function bindEvent() {
var touch = {};
var firstTouch;
shortcut.addEventListener('touchstart', function (e) {
var anchor = e.target.getAttribute('data-anchor');
firstTouch = e.touches[0];
touch.y1 = firstTouch.pageY;
touch.anchor = anchor;
scrollTo(anchor);
});
shortcut.addEventListener('touchmove', function (e) {
firstTouch = e.touches[0];
touch.y2 = firstTouch.pageY;
var anchorHeight = 16;
var delta = (touch.y2 - touch.y1) / anchorHeight | 0;
var anchor = shortcutList[shortcutList.indexOf(touch.anchor) + delta];
scrollTo(anchor);
e.preventDefault();
e.stopPropagation();
});
function scrollTo(anchor) {
var maxScrollY = cityWrapper.clientHeight - cityScroller.clientHeight;
var y = Math.min(0, Math.max(maxScrollY, anchorMap[anchor]));
if (typeof y !== 'undefined') {
scroll.scrollTo(0, y);
}
}
}
initCities(); bindEvent();
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有