项目中碰到一个场景就是当鼠标滑倒某个div的时候,滑动鼠标页面不再滚动。
这里主要是当鼠标滑动到该div时,监听滚轮事件并通过preventDefault()事件来阻止滚动事件,以下是例子
#wrap {
top:200px;
background:#000000;
font-size: 40px;
width:50vw;
text-align: center;
color: #ffffff;
line-height: 300px;
height:300px;
<div id="wrap">
鼠标移动进入该区域,页面禁止滚动
window.onload = function () {
for (i = 0; i < 50; i++) {
var x = document.createElement('div');
x.innerHTML = "test<br/>";
document.body.appendChild(x);
function $(x) {
return document.getElementById(x);
$("wrap").onmousewheel = function scrollWheel(e) {
var sl;
e = e || window.event;
if (navigator.userAgent.toLowerCase().indexOf('msie') >= 0) {
event.returnValue = false;
} else {
e.preventDefault();
if (navigator.userAgent.toLowerCase().indexOf('firefox') >= 0) {
//firefox支持onmousewheel
addEventListener('DOMMouseScroll',
function (e) {
var obj = e.target;
var onmousewheel;
while (obj) {
onmousewheel = obj.getAttribute('onmousewheel') || obj.onmousewheel;
if (onmousewheel) break;
if (obj.tagName == 'BODY') break;
obj = obj.parentNode;
if (onmousewheel) {
if (e.preventDefault) e.preventDefault();
e.returnValue = false; //禁止页面滚动
if (typeof obj.onmousewheel != 'function') {
//将onmousewheel转换成function
eval('window._tmpFun = function(event){' + onmousewheel + '}');
obj.onmousewheel = window._tmpFun;
window._tmpFun = null;
// 不直接执行是因为若onmousewheel(e)运行时间较长的话,会导致锁定滚动失效,使用setTimeout可避免
setTimeout(function () {
obj.onmousewheel(e);
false);
项目中碰到一个场景就是当鼠标滑倒某个div的时候,滑动鼠标页面不再滚动。这里主要是当鼠标滑动到该div时,监听滚轮事件并通过preventDefault()事件来阻止滚动事件,以下是例子eg:#wrap { top:200px; background:#000000; font-size: 40px; width:50vw; text-align: center; .
只是一个小技巧;当先显示遮罩层时,加上
禁止屏幕
滚动
1、document.documentElement.style.overflowY = 'hidden'; //
禁止屏幕
滚动
2、当关闭遮罩层是时加上
document.documentElement.style.overflowY = 'scroll'; //取消
禁止屏幕
滚动
01-jQuery动画jQuery动画动画分类HTML DOM position 属性定义和用法显示 show(毫秒, 完成回调函数)隐藏 hide(毫秒, 完成回调函数)切换 toggle(毫秒, 完成回调函数)案例:两侧浮动广告显示或者隐藏控制
jQuery动画
通过 jQuery 动画方法,能够很轻松地为网页添加非常精彩的视觉效果 给用户一种全新体验。
显示、隐藏
滑动、卷动
一、横滑、竖滑
在固定大小的div中设置滑动效果,一般使用overflow-x和overflow-y,此时会出现x方向和y方向的滑动条。
以下为消除滑动条的方法(浏览器、移动端、浏览器&移动端兼容)
overflow-x: scroll;
scrollbar-width: none; /* firefox */
-ms-overflow-style: none; /* IE 10+ */
&::-webki
div中的style属性中的一个关键字,表明了该
div所在的位置以及位置本身的属性。
position有四个值可选:static,absolute,fixed,relative。
若要使得
div相对于浏览器窗口固定,即不随...
<div v-show="ishow" class="fiex" @touchmove.prevent>
<div @click="hide" class="hide"></div>
<div :time_="tim" class=&quo
此时脑袋里面浮现了两种解决方案:
另新建一个div,使div完全复制这块div内容,再优先级高于这个遮罩层就行了。但是这样有一个缺点,由于部分布局不同,这个遮盖的div可能不会完全的准确覆盖此div,达不到最理想的效果。
第二种, 在源div上操作,使其可以显示在遮罩层之上
这里我说一下第二种:
在此div上添加属性:
position
蒙层禁止页面滚动的方案
弹窗是一种常见的交互方式,而蒙层是弹窗必不可少的元素,用于隔断页面与弹窗区块,暂时阻断页面的交互。但是在蒙层出现的时候滚动页面,如果不加处理,蒙层底部的页面会开始滚动,实际上我们是不希望他进行滚动的,因此需要阻止这种行为。当弹出蒙层时禁止蒙层下的页面滚动,也可以称为滚动穿透的问题,文中介绍了一些常用的解决方案。
首先需要实现一个蒙层下滚动的效果示例,当我们点击弹窗按钮显示蒙层之后,再滚动鼠标的话能够看到蒙层下的页面依旧是能够滚动的。如果在蒙层的内部进行滚动,当蒙层内滚动条滚动到
我要鼠标移到div的时候不能对地图进行操作:
// 把以下内容 写在地图加载完后 页面渲染完后的方法里
let leftResultDiv = document.getElementById('leftResult'); //获取div的dom
setTimeout(() => {
leftResultDiv.onmouseover = function () { //监听鼠标移入
$('#your-element').mousemove(function(e) {
// 获取鼠标滚动事件
var scroll = e.originalEvent.wheelDelta;
// 判断滚动方向
if (scroll > 0) {
// 向右滚动
$(this).scrollLeft($(this).scrollLeft() - 20);
} else {
// 向左滚动
$(this).scrollLeft($(this).scrollLeft() + 20);
这段代码会在页面加载后监听 `#your-element` 元素的鼠标移动事件,并根据鼠标滚动方向更新滚动条的位置。注意,这段代码只能在区域内滑动鼠标时有效,如果鼠标在区域外滑动,代码不会起作用。