mousewheel 模拟滚动

               div{
			box-sizing:border-box;
		}
		.father{
			width:500px;
			height:400px;
			margin:auto;
			margin-top: 50px;
			border: 1px solid red;
			overflow: hidden;
			position: relative;

		}

		.child{
			width:60%;
			height: 1210px;
			border: 1px solid green;
			margin:auto;
			position: absolute;
		 	left:100px;
		}

  

function load(){
			window.child=document.getElementById(‘child‘);
			window.father=child.parentNode;
			father.addEventListener(‘mousewheel‘,function(e){
			// father.addEventListener(‘scroll‘,function(e){
				e.preventDefault();
				e.stopPropagation();
				move(e.deltaY*-1);
			})
		}

		function move(offset)
		{
			var top = child.style.top;
			if(top===‘‘)
			{
				top=0;
				offset= offset/1 + top/1;
			}
			else
			{
				top=top.replace(‘px‘,‘‘);
				offset= offset/1 + top/1;
			}
			var moved=Math.abs(offset) +father.offsetHeight;
			if(moved>child.offsetHeight && offset<0)
			{
				child.style.top = -1*(child.offsetHeight-father.offsetHeight+6) +‘px‘;
				return;
			}
			if(offset>0)
			{
				child.style.top=‘0px‘;
				return;
			}
			child.style.top=(offset) +‘px‘;
		}

  

<body >
<div class="father">
	<div class="child" id="child">
	</div>
</div>

  

时间: 2024-09-28 05:09:54

mousewheel 模拟滚动的相关文章

UI开发----UIScrollView和UIPageControl简单模拟滚动视图

//  Created By 郭仔 //================================================== 师傅领进门,修行在个人!自学才是王道! //================================================== UIScrollView: UIScrollView * scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(20, 50, 200, 200)]

marquee:已经被逐步舍弃掉的强大的模拟滚动的标签

(1)其实marquee的功能还是十分强大的,可以模拟我们用js才能实现的滚动效果,而且上下左右方向.滚动速度等等设置十分简单. (2)但是,marquee的缺点是兼容性不太好,因为是微软自己发明了,后来才逐步被其他浏览器厂商接受. (3)发现,目前使用marquee标签的地方不是很多.可能这种滚动的效果,现在看起来十分不友好,所以被逐步抛弃了吧. 参考文献: html之marquee详解 IE Firefox Opera Chrome Safari 对MARQUEE标签的兼容问题 <!DOCT

dom 输入文字模拟滚动

<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <style> #div1{ width:30px; height:500px; background:#000; position:absolute; left:10px; top:10px; } #div2{ width:30px; height:30p

27.jquery模拟滚动效果

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <

javascript 模拟滚动 隐藏滚动条

想隐藏掉难看的滚动条,四处翻看博客,思路来源https://www.cnblogs.com/chefweb/p/6473517.html,不知道有没有更好的思路,先凑合着用吧. html 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 <title></title> 6 <link rel="stylesheet&qu

iScroll滚动区域中select、input、textarea元素无法点击的Bug修复

最近在一个项目中使用了iScroll4模拟滚动效果,调试过程中发现一个表单页中的所有表单项都无法点击聚焦, 如<select>.<input>.<textarea>.这是因为iScroll要监听整个页面事件,为了达到 最优效果,它默认禁用了所有元素的默认事件(但也有例外,如<a>默认事件不受影响),所以才造成这些表单元素点击没有反应,无法正常聚焦. 我们打开 iscroll.js ,找到这一行: onBeforeScrollStart : function(

通过overflow: scroll;来实现部分区域的滚动

在移动端中,我们希望元素的滚动,可以通过一些插件的使用来实现滚动,当然也可以自己来实现. 比如:对于某一个区域,我们可以限制好高度之后,设定:overflow-y: scroll; 这样,就可以实现滚动了,并且我们可以通过 overflow: scroll的元素的scrollTop来控制其行为. 但是,这种方法是存在问题的,因为在某些手机上回出现难看的滚动条,一般的解决方法是: ios: margin-right: -20px; padding-right: 20px; 当然,这个方法用在web

原生js模拟滚动条

滚动条的基本交互有两个,鼠标拖拽滚动条和滚轮滚动. 滚动条涉及到的dom元素:1.主体区域(obj,box2与box4的父元素),鼠标滚动的触发主体,包含内容和滚动条,宽高自定.2.滚动条(box1),宽自定,高按内容区比例计算.3.滚动区域(box2,box1的父节点),高与内容可视区的高相同,宽自定.4.内容(box3,滚动的内容主体).5.内容(box4,box3的父元素,有限宽高,内容可视区). 实现的基本原理就是以上元素绝对定位,通过鼠标的交互事件,来完成相关dom的top值,已达到模

鼠标滚动事件兼容性 wheel、onwheel

wheelEvent = "onwheel" in document.createElement("div") ? "wheel" : // Modern browsers support "wheel" document.onmousewheel !== undefined ? "mousewheel" : // Webkit and IE support at least "mousewhee