Javascript 防止div中的元素与其余内容一起滚动

Javascript 防止div中的元素与其余内容一起滚动,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我认为问题在于,嵌套内容的div没有id或class,只有属性 在它里面有,和元素。我希望防止在滚动div中的表时滚动这些内容(文本需要保持可读性) 我试图用一个简短的JQuery脚本来解决这个问题,该脚本本应用于补偿滚动,但我既不确定该方法是否有效,也不确定如何通过其“role”属性来选择div 以下是我到目前为止的情况: var leftOffset = parseInt($("#description").css('left')); $(window).scroll(function(){

我认为问题在于,嵌套内容的div没有id或class,只有属性

在它里面有
元素。我希望防止在滚动div中的表时滚动这些内容(文本需要保持可读性)

我试图用一个简短的JQuery脚本来解决这个问题,该脚本本应用于补偿滚动,但我既不确定该方法是否有效,也不确定如何通过其“role”属性来选择div

以下是我到目前为止的情况:

var leftOffset = parseInt($("#description").css('left'));
$(window).scroll(function(){
    var newOffset = num.toString($(this).scrollLeft() * -1 + leftOffset),
    $('#description').css("left", newOffset);
});

您可以通过
$('[role=main]')选择div

可以使用CSS禁用元素的滚动

[role=main] {
  overflow: hidden;
}

您可以通过CSS或jQuery使用选择器
[role=“main”]
,也可以在CSS中使用
位置:sticky
(如果我理解原因,但没有您的更多代码,我就不明白了:)

有关粘性位置,请参见

[role=“main”]{/*演示用途*/
显示:内联flex;
高度:400px;;
弯曲方向:立柱;
柔性包装:包装;
}
#说明,[role=“main”]h2{
浮动:左;
清除:左;
宽度:280px;
位置:粘性;
左:0;
排名:0;
背景:黄色;
}
p{/*强制水平滚动演示*/
宽度:100%;
}
身体{
保证金:0;
}

HTML Ipsum呈现
佩伦茨克居民莫比·特里斯蒂克(morbi tristique)塞内特斯(Sentecus et netus)和马莱苏阿达(malesuada)是一位著名的土耳其人。前庭侵权人、世仇、别有用心者、临时诉讼人、担保人。不要让你的自由人坐在那里

标题级别2
佩伦特式的居住者莫比·特里斯蒂克·塞内特斯和内特斯·马莱苏阿达是一位著名的土尔皮斯人,他是一位生活中的隐秘者。莫里斯·普莱斯特拉特·埃利芬德·利奥。他是一个聪明的人。威斯康辛州奥纳雷·希特·阿梅特市,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州。埃涅亚发酵液、精粹葡萄汁调味品、红莓汁、豆豉箭叶。在turpis枕面部。但是猫咪们。佩伦特式的居住者莫比·特里斯蒂克塞内特斯、内特斯和马莱苏阿达是著名的土尔皮人。前庭侵权人、世仇、别有用心者、临时诉讼人、担保人。不要让你的自由人坐在那里。我的生命是永恒的。莫里斯·普莱斯特拉特·埃利芬德·利奥。他是一个聪明的人。威斯康辛州奥纳雷·希特·阿梅特市,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州。埃涅亚发酵液、精粹葡萄汁调味品、红莓汁、豆豉箭叶。在turpis枕面部。但是猫咪们。佩伦特式的居住者莫比·特里斯蒂克塞内特斯、内特斯和马莱苏阿达是著名的土尔皮人。前庭侵权人、世仇、别有用心者、临时诉讼人、担保人。不要让你的自由人坐在那里。我的生命是永恒的。莫里斯·普莱斯特拉特·埃利芬德·利奥。他是一个聪明的人。威斯康辛州奥纳雷·希特·阿梅特市,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州,威斯康辛州。埃涅亚发酵液、精粹葡萄汁调味品、红莓汁、豆豉箭叶。在turpis枕面部。乌特·费利斯。埃格斯塔斯。前庭侵权人、世仇、别有用心者、临时诉讼人、担保人。不要让你的自由人坐在那里。我的生命是永恒的。莫里斯·普莱斯特拉特·埃利芬德·利奥。他是一个聪明的人。威斯康辛州的前庭、调味品、康茂德维塔、奥纳雷西特、威斯康辛州。埃涅亚发酵液、精粹葡萄汁调味品、红莓汁、豆豉箭叶。在turpis枕面部进行非enim治疗。乌特·费利斯。事实上,这是一个错误,是一个错误,是一个错误,是一个错误。阿利奎姆·埃拉特·帕特。Nam dui mi,tincidunt quis,accumsan porttitor,facilisis luctus,metus

我不能完全理解你的问题。我认为您有一个包含一些内容的div(带有role=“main”)。除了一个或两个元素(div with id=“description”,p和h2),您希望内容正常滚动。您可以在div[role=main]中添加一个div。将要滚动的内容放入其中,不应滚动的内容放入div[role=main]中。这样,您就可以在div[role=main]中创建一个大小相同的div,并允许其内容滚动,防止在div[role=main]上滚动。不可能阻止特定内容的滚动,但将应该滚动和不应该滚动的内容保留在不同的div中应该有效

div[role="main"] {
    position: relative;  
    overflow: hidden;
}
div[role="main"] .scroll {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    overflow: auto;
}

<div role="main">
    ...content which should not scroll
    <div class="scroll">
        ...content which should scroll
    </div>
</div>
div[role=“main”]{
位置:相对位置;
溢出:隐藏;
}
div[role=“main”]。滚动{
位置:绝对位置;
排名:0;
右:0;
左:0;
底部:0;
溢出:自动;
}
…不应滚动的内容
…应该滚动的内容

为了使除此div之外的所有内容都在[role=“main”]div中滚动,这是否有效?[id=“description”]{overflow:hidden;}如果我运行截取的代码,这里的所有内容都会滚动。然而,我想实现的是f.e.如果在顶部,则除了滚动之外的所有内容都会滚动。@lolcat您可以在html中设置a,并在不想滚动的内容上添加颜色:红色吗。读到你的评论和问题,我很困惑,一旦我明白你想要描述和h2保持静止,而不是H1或仅仅描述。HTML结构将帮助您正确回答问题,并在这种情况下向您提出相关建议