当用户滚动到div的顶部时,我正在尝试将滚动条向下推几个px.问题是,在向下滚动几个px之后(滚动到顶部之后),当我的鼠标仍然被点击时(鼠标按下),浏览器仍然认为我的鼠标位于div的顶部.这很糟糕,因为代码一直在触发.
我想要实现的功能:
滚动到div的顶部
滚动被向下推几个像素,但即使我的鼠标仍在鼠标按下,该功能也不会再次触发.
我想这可能是我通过检测功能的方式<div>.请测试我的代码,看看<div>我是否有意义.
var wrapper = document.getElementById('scroll-box');
wrapper.onscroll = function (evt){
//detect when scroll has reached the top of the frame
if(wrapper.scrollTop === 0){
console.log('top of frame');
wrapper.scrollTop += 500;
}
//detect when scroll has reached the bottom of the frame
if(wrapper.scrollHeight - wrapper.scrollTop === wrapper.clientHeight){
console.log('bottom of frame');
}
}
wrapper.scrollTop += 3000;Run Code Online (Sandbox Code Playgroud)
.scroll-box {
width: 400px;
height: 300px;
background-color: gray;
overflow-y: scroll;
}
div ul li {
padding: 50px;
}Run Code Online (Sandbox Code Playgroud)
<div class="scroll-box" …Run Code Online (Sandbox Code Playgroud)在passport.js 中有一些我不明白的东西。
1.
var passport = require('passport')
, LocalStrategy = require('passport-local').Strategy;
passport.use(new LocalStrategy(
function(username, password, done) {
User.findOne({ username: username }, function (err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Incorrect username.' });
}
if (!user.validPassword(password)) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null, user);
});
}
));Run Code Online (Sandbox Code Playgroud)
null在done()函数中代表什么。它似乎总是第一个参数,我对它的实际作用感到困惑?
2.
passport.serializeUser(function(user, cb) {
cb(null, user);
});
passport.deserializeUser(function(obj, cb) {
cb(null, obj);
});Run Code Online (Sandbox Code Playgroud)
序列化和反序列化有什么作用?当会话存储在浏览器中时,是否在登录后调用序列化?反序列化是在访问页面时,会话在服务器上反序列化以验证该用户?
最后又是什么 …