js锚点定位
提示:在锚点定位的过程中,容易出现上下偏移的情况,因此实际情况中需要进行调整
html
<a href="javascript:;" class="navItems current" navto="#" >1</a
<a href="javascript:;" class="navItems" navto="box2" >2</a>
<a href="javascript:;" class="navItems" navto="box3" >3</a>
<div>hello</div>
<div id="box2"></div>
<div id="box3"></div>
js
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"> </script>
<script> //根据锚点进行定位
$('.navItems').click(function() {
var navto = $(this).attr('navto');
if(navto != "#") {
var $div = $('#' + navto);
var top = $div.offset().top || 0;
$('html,body').animate({
'scroll-top': top - 150 //150数字根据实际情况进行调整,如果上下距离过大,就缩小数字,如果距离过近,就增大数字
}, 500);
} else {
$('html,body').animate({
'scroll-top': 0
}, 500);
}
});
//内容滚动的时候,导航栏跟随
var $navs = $('.nav-menu a'), // 导航
$boxs = $('.box'), // 模块
$window = $(window),
navLength = $navs.length - 1;
$window.on('scroll', function () {
var scrollTop = $window.scrollTop(),
len = navLength;
for (; len > -1; len--) {
var that = $boxs.eq(len);
if ((scrollTop+300) >= that.offset().top) { //数字300根据实际情况进行调整
$navs.removeClass('current').eq(len).addClass('current');
break;
}
}
});
</script>
js禁止页面调试
禁止鼠标右击、开发者工具f12
/禁止鼠标右击
document.oncontextmenu = function() {
event.returnValue = false;
};
//禁用开发者工具F12
document.onkeydown = document.onkeyup = document.onkeypress = function(event) {
let e = event || window.event || arguments.callee.caller.arguments[0];
if (e && e.keyCode == 123) {
e.returnValue = false;
return false;
}
};
let userAgent = navigator.userAgent;
if (userAgent.indexOf("Firefox") > -1) {
let checkStatus;
let devtools = /./;
devtools.toString = function() {
checkStatus = "on";
};
setInterval(function() {
checkStatus = "off";
console.log(devtools);
console.log(checkStatus);
console.clear();
if (checkStatus === "on") {
let target = "";
try {
window.open("about:blank", (target = "_self"));
} catch (err) {
let a = document.createElement("button");
a.onclick = function() {
window.open("about:blank", (target = "_self"));
};
a.click();
}
}
}, 200);
} else {
//禁用控制台
let ConsoleManager = {
onOpen: function() {
alert("Console is opened");
},
onClose: function() {
alert("Console is closed");
},
init: function() {
let self = this;
let x = document.createElement("div");
let isOpening = false,
isOpened = false;
Object.defineProperty(x, "id", {
get: function() {
if (!isOpening) {
self.onOpen();
isOpening = true;
}
isOpened = true;
return true;
}
});
setInterval(function() {
isOpened = false;
console.info(x);
console.clear();
if (!isOpened && isOpening) {
self.onClose();
isOpening = false;
}
}, 200);
}
};
ConsoleManager.onOpen = function() {
//打开控制台,跳转
let target = "";
try {
window.open("about:blank", (target = "_self"));
} catch (err) {
let a = document.createElement("button");
a.onclick = function() {
window.open("about:blank", (target = "_self"));
};
a.click();
}
};
ConsoleManager.onClose = function() {
alert("Console is closed!!!!!");
};
ConsoleManager.init();
}