Javascript 使用jQuery添加显示:无;当某件事是真的并且达到一定的规模时?
我想将代码中名为text的div改为diplay:none;只要div“#视频覆盖阴影和#视频覆盖”为真,并且当屏幕大小为740时,高于740时,以及低于460时,什么也不做。我从以下几点开始:Javascript 使用jQuery添加显示:无;当某件事是真的并且达到一定的规模时?,javascript,jquery,width,screen,Javascript,Jquery,Width,Screen,我想将代码中名为text的div改为diplay:none;只要div“#视频覆盖阴影和#视频覆盖”为真,并且当屏幕大小为740时,高于740时,以及低于460时,什么也不做。我从以下几点开始: $(document).ready(function(){ window var $window = $(window); //display nav var displayHide = true; //on resize get widths getWidths(); $window.resize
$(document).ready(function(){ window
var $window = $(window);
//display nav
var displayHide = true;
//on resize get widths
getWidths();
$window.resize(getWidths);
//set width of content to the needed widths
function getWidths()
{
var browserWidth = $window.width();
if ((browserWidth >=740) && (("#video-overlay-shadow, #video-overlay") == true))
{
//do somthing
}
else if((browserWidth >= 460) && (("#video-overlay-shadow, #video-overlay") == false))
{
//do something
}
else if((browserWidth < 740) && (("#video-overlay-shadow, #video-overlay") == false))
{
//do something
}
}
//toggle nav
function toggleHide()
{
$("#text").toggle();
}});
$(文档).ready(函数(){window
变量$window=$(window);
//显示导航
var displayHide=true;
//关于调整获取宽度的大小
getWidths();
$window.resize(getWidths);
//将内容的宽度设置为所需的宽度
函数getWidths()
{
var browserWidth=$window.width();
如果((浏览器宽度>=740)和(“#视频覆盖阴影,#视频覆盖”)==true))
{
//干坏事
}
否则如果((浏览器宽度>=460)和(“#视频覆盖阴影,#视频覆盖”)==false))
{
//做点什么
}
否则,如果((浏览器宽度<740)和(“#视频覆盖阴影,#视频覆盖”)==false))
{
//做点什么
}
}
//切换导航
函数toggleHide()
{
$(“#文本”).toggle();
}});
我想知道我是否在正确的轨道上,或者有人能看到代码中的错误吗?我无法使用媒体查询的原因是我需要确保“#视频覆盖阴影和#视频覆盖”=true
因此,在我尝试这一点之前,我只想补充一下:
$(document).ready(function() {
var $window = $(window);
//display nav
var displayHide = true;
//on resize get widths
getWidths();
$window.resize(getWidths);
//set width of content to the needed widths
function getWidths()
{
var browserWidth = $window.width();
if(($("#video-overlay-shadow").length > 0) && ($(browserWidth >=740)))
{$("#hero-bg").css("display", "none");
}
else if(($("#video-overlay-shadow").length > 0) && ($(browserWidth <740)))
{
//do nothing
}
else if(($("#video-overlay-shadow").length > 0) && ($(browserWidth >=460)))//it exists
{
//do nothing
}
else if(($("#video-overlay-shadow").length <=0))
{
//do nothing
}
}});
$(文档).ready(函数(){
变量$window=$(window);
//显示导航
var displayHide=true;
//关于调整获取宽度的大小
getWidths();
$window.resize(getWidths);
//将内容的宽度设置为所需的宽度
函数getWidths()
{
var browserWidth=$window.width();
如果($(“#视频覆盖阴影”).length>0)和($(browserWidth>=740)))
{$(“#英雄背景”).css(“显示”、“无”);
}
否则如果($(“#视频覆盖阴影”).length>0)和($(browserWidth 0)和($(browserWidth>=460))//它存在
{
//无所事事
}
else if($(“#视频覆盖阴影”).length您缺少两个覆盖元素的$
。当前您只是测试一个字符串,这不是您想要的。假设覆盖只是输入,您需要:
$("#video-overlay-shadow").val() == true && $("#video-overlay").val() == true;
如果未在其中存储任何其他真实值,可以将其简化为:
$(“#视频覆盖阴影”).val()&&$(“#视频覆盖”).val();
此外,我会将此值存储在一个变量中,而不是每次都查询它。如果#video overlay==true,则不能只询问JavaScript。要测试jQuery中是否存在元素,请查找其长度:
if ($('#video-overlay').length) { // if no such div, length = zero = false
要测试元素是否可见,请使用该选择器:
if ($('#video-overlay:visible').length) {
我不知道你在这里想做什么,但我会用herre来检查元素是否存在
简单地说:
不是
由于您使用的是jquery对象,而不是纯JavaScript,所以它应该包含在$
if((browserWidth < 740) && $("#video-overlay-shadow").val() && $("#video-overlay").val()){}
if((浏览器宽度<740)和&$(“#视频覆盖阴影”).val()和&$(“#视频覆盖”).val(){
所以我希望这更接近你想要的,但是更多的细节会很有用为什么不能使用响应式网页设计?
在css文件中:
/* start css */
// some styles for all devices with max-width 460px
@media (min-width: 460px) and (max-width: 740px) {
#video-overlay-shadow, #video-overlay {
display: none;
}
}
@media (min-width: 740px) {
#video-overlay-shadow, #video-overlay {
display: block;
}
}
/* end css */
你说的#video overlay==true是什么意思?你想测试该元素的存在吗?是的,我想确保它显示在页面上。我的页面上有一个按钮,当你点击它时,它会将#video overlay shadow,#video overlay覆盖在一个横幅上,横幅上有两张图片。调整页面大小时,它看起来很像在你到达740-460之前,一切都很顺利,所以当它到达那里时,我想确保当显示视频叠加阴影时,视频叠加正在显示,并且你的at 740-460设置对标题中的一幅图片的名称文本不显示任何内容。$('video overlay shadow')
将始终为true
,即使它是空的——您需要测试jQuery对象的长度如果没有元素,则.length evaulate为false,否则返回一个未定义的对象并计算为true检查主要问题的新注释。您还有什么问题?您是否能够取得任何进展?使用新代码,它现在的设置始终显示:无。
if((browserWidth < 740) && $("#video-overlay-shadow").val() && $("#video-overlay").val()){}
/* start css */
// some styles for all devices with max-width 460px
@media (min-width: 460px) and (max-width: 740px) {
#video-overlay-shadow, #video-overlay {
display: none;
}
}
@media (min-width: 740px) {
#video-overlay-shadow, #video-overlay {
display: block;
}
}
/* end css */