CSS
实现嵌套
滚动
条(
父
元素横向
滚动
,
子元素
纵向
滚动
)
关键属性:overflow-x和position
注意点:
子元素
设置overflow时会自动继承
父
元素的overflow属性,造成
子元素
显示的大小没有撑满
解决方法:
子元素
增加绝对定位,
父
元素增加相对定位,使
子元素
脱离文档流不再继承
父
元素的overflow属性
示例代码如下:
<!DOCTYPE html>
<html...
我们经常遇到一种情况。当滑动
滚动
条区域时,
子元素
滚动
条到底部或顶部时就会触发
父
级
滚动
条,
父
级
滚动
条同理会继续向上触发,直至body容器。这是浏览器默认的
滚动
行为。
但是很多情况,我们想要
子元素
滚动
完成后,不触发
父
元素的
滚动
,比如 modal、侧边栏 等等。
详细文档 & 例子
Document & Demo
vue
-...
Vue
中子组件的弹框
滚动
条不
影响
父
元素
滚动
问题描述解决方法基于Jquery的方式原生JS:给body加上position:fixed==原生JS==:给body加上overflow:hidden
在
vue
的某个页面的子组件中设置了弹框,主页面和弹窗都有
滚动
条,当弹窗
滚动
条滑到底部时,会触发主页面的滑动。怎么禁止主页面的滑动?关闭弹窗后,再恢复主页面的滑动。
基于Jquery的方...
当我们在使用
vue
的时候,可能会遇到当你在
父
组件上调用了其他子组件的时候,这个子组件明明不应该有
滚动
条,却显示了
滚动
条,而且上下拖动还会
影响
父
组件的
滚动
条,这对网页的实际使用产生了不好的
影响
楼主的情况
有一个命名为a的
父
组件
<template>
<detail-banner></detail-banner...
<div class="container" @scroll="handleScroll">
<div class="content"></div>
<div class="float-element" :class="{ 'float': isFloating }"></div>
</template>
<script>
import { ref } from '
vue
';
export default {
setup() {
const isFloating = ref(false);
const handleScroll = (event) => {
const scrollTop = event.target.scrollTop;
if (scrollTop > 100) { // 判断
滚动
距离是否大于100px
isFloating.value = true; // 让DOM元素浮动
} else {
isFloating.value = false; // 取消DOM元素浮动
return {
isFloating,
handleScroll,
</script>
<style>
.container {
position: relative;
height: 400px;
overflow-y: scroll;
.content {
height: 1000px;
.float-element {
position: absolute;
top: 120px;
left: 50%;
transform: translateX(-50%);
width: 100px;
height: 100px;
background-color: #ccc;
transition: all 0.3s ease-in-out;
.float {
top: 20px;
background-color: red;
</style>
在上面的代码中,我们通过`@scroll`事件监听
滚动
事件,并在`handleScroll`函数中计算
滚动
距离,然后根据
滚动
距离的大小来决定是否让DOM元素浮动。
当
滚动
距离大于100px时,我们通过`isFloating`变量来控制DOM元素的`float`属性,实现让DOM元素浮动的效果。注意,这里使用了
Vue
3中的`ref`函数来创建响应式变量`isFloating`。