我正在创建工具提示的动态定位,我先在jsfiddle上测试代码然后将我的代码放到我的网站上(在localhost上使用wordpress构建),在jsfiddle我的脚本是可行的但是当我把代码放到我的网站时,它不起作用(不是动态地在chrome上)因为$(window).height()的结果不同.您可以检查this fiddle并尝试鼠标进入链接(第一个链接),然后在控制台上查看日志,窗口高度的结果为wh:667但在我的网站窗口高度为wh:12024和wh:11970(可更改)
jQuery(document).ready(function ($) {
$('a[rel="bookmark"]').mouseenter(function () {
console.log($(window).height());
})
});
也用这个
jQuery(function($){
$(window).ready(function(){
console.log($(window).height());
});
$(window).on('resize',function(){
console.log($(window).height());
});
});
谷歌浏览器
jsfiddle:667
我的网站(wordpress):12024 – 多变的
Mozilla的
jsfiddle:602
我的网站:585
我敢肯定,我已经添加了strict doctype.
我找到了this explanation
$(window).height()
is the height of the viewport that shows the
website. (excluding your toolbars and status bar and stuff like this)
$(document).height()
is the height of your document shown in the
viewport. If it is higher than$(window).height()
you get the
scrollbars to scroll the document
我认为在我的网站上结果$(window).height()是滚动条在chrome上滚动文档(我的网站有一个很长的页面).如果是这样,我怎样才能在我的网站上获得视口的高度,是否有另一种方法可以获得每个浏览器(chrome,mozilla,opera等)视口的相同结果(实际)高度?
我不是说你有确切的问题,但是,这个线程正是我所面对的.我100%确定我的html设置为严格.
但是,只要我在Chrome中执行“Inspect element”,严格DOCTYPE的实际定义就消失了.所以我检查了其他网站,我立刻意识到有一些极端可疑的事情发生,这不应该发生.谁吃了我严格的doctype?
不仅如此,我注意到HEAD的内容已移至< body>和其他奇怪的事情正在发生.
我做了任何合理的人类会做的事情,我推测我所有的时间都浪费在这个愚蠢的UTF-8 BOM上,因为我过去曾经遇到过很多问题.哦,男孩,我是对的.
在我切换到没有bom的UTF-8之后,一切都开始完美无缺.请注意,有趣的是:我的网站似乎100%工作,即使是混乱的HTML(我从未注意到浏览器解释错误).
为什么我的文件在第一时间用bom编码为UTF-8&为什么它甚至会影响浏览器?我不知道.