Opera9不支持overflow-y:auto?

可以看看opera和其他浏览器看看以下的效果 ,文件见上传的附件 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <style> .content{ overflow:auto; height:100px; border: 0.3em solid #C3E0F1; } .content-y{ overflow-y:auto; height:100px; border: 0.3em solid #C3E0F1; } </style> </head> <body>
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
xx
xx
xx
xx
xx
x
x
x
x
</body> </html>



修改以下代码样式要求不出现滚动条<template> <div class="cigarette-contact"> <!-- 搜索框 - 增加层级隔离,避免遮挡下方内容 --> <div class="search-box"> <input v-model="searchKeyword" type="text" placeholder="搜索烟名..." class="search-input" /> </div> <!-- 主容器 - 增加顶部间距,避开搜索框 --> <div class="main-container"> <!-- 字母索引侧边栏 - 修复层级和定位 --> <div class="letter-index"> <div v-for="letter in letterList" :key="letter" class="index-item" :class="{ active: currentLetter === letter }" @click="scrollToLetter(letter)" > {{ letter }} </div> </div> <!-- 字母分组列表 - 结构不变 --> <div class="contact-content" ref="contentRef"> <template v-for="(group, index) in filteredGroups" :key="group.letter"> <div class="letter-group" :ref="el => el && (groupRefs[index] = el)"> <div class="letter-title">{{ group.letter }}</div> <div class="cigarette-list"> <div v-for="item in group.list" :key="item.id" @click="handleItemClick(item)" > <div style="height: 200px;min-width: 150px;"> <img :src="item.picFront || defaultImg" class="cig-img"> </div> <div class="cigarette-item">{{ item.name }}</div> </div> </div> </div> </template> <!-- 空状态 --> <div v-if="isShow ==false" class="empty-state"> 加载中... </div> <div v-if="filteredGroups.length === 0 && isShow ==true" class="empty-state"> 暂无匹配的烟名 </div> </div> </div> </div> </template><style scoped> /* 基础布局 - 关键:给容器增加内边距,避免内容顶到顶部 */ .cigarette-contact { width: 100%; height: 97vh; display: flex; flex-direction: column; font-family: -apple-system, BlinkMacSystemFont, &#39;Segoe UI&#39;, Roboto, sans-serif; padding-top: 10px; /* 顶部留空,避免内容贴顶 */ box-sizing: border-box; /* 关键:内边距计入总高度 */ } /* 搜索框样式 - 核心优化:适配深蓝色背景 */ .search-box { padding: 15px 20px; position: relative; z-index: 10; } .search-input { width: 100%; max-width: 600px; padding: 14px 20px; /* 适度加高,提升手感 */ /* 关键:半透明深色背景 + 磨砂效果,融合深蓝色 */ background-color: rgba(18, 38, 63, 0.7); backdrop-filter: blur(8px); /* 磨砂玻璃,增强融合感 */ -webkit-backdrop-filter: blur(8px); /* 兼容webkit内核 */ /* 浅色系边框,弱化边界 */ border: 1px solid rgba(100, 150, 200, 0.3); border-radius: 12px; /* 更大圆角,更柔和 */ font-size: 16px; /* 文字颜色适配深色背景 */ color: #e6f1ff; outline: none; box-sizing: border-box; /* 轻微阴影,增加层次感但不突兀 */ box-shadow: 0 2px 8px rgba(0, 10, 30, 0.2); transition: all 0.3s ease; } /* 占位符样式适配 */ .search-input::placeholder { color: rgba(180, 210, 250, 0.6); /* 浅蓝灰色,不刺眼 */ } /* 聚焦状态:强化边框,弱化阴影,保持融合感 */ .search-input:focus { border-color: rgba(64, 158, 255, 0.6); box-shadow: 0 0 0 3px rgba(64, 158, 255, 0.1); background-color: rgba(18, 38, 63, 0.8); /* 聚焦时略加深背景,提升可读性 */ } /* 主容器 - 核心修复:增加顶部间距,避开搜索框;限制高度避免溢出 */ .main-container { flex: 1; display: flex; padding: 0 20px 20px; /* 仅左右+底部padding,顶部无padding避免重叠 */ margin-top: 10px; /* 关键:顶部间距,远离搜索框 */ gap: 20px; overflow: hidden; height: calc(100% - 80px); /* 关键:计算高度,减去搜索框高度,避免溢出 */ box-sizing: border-box; } /* 字母索引 - 修复层级+调整尺寸,避免被遮挡 */ .letter-index { display: grid; grid-template-columns: repeat(2, 1fr); grid-gap: 6px 10px; /* 缩小间距,避免字母过大 */ width: 160px; /* 适度加宽,避免挤压 */ border-radius: 8px; padding: 12px; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05); flex-shrink: 0; justify-items: center; align-content: flex-start; /* 关键:字母从顶部开始排列,而非居中 */ background-color: rgba(0, 0, 0, 0.1); /* 增加背景,提升可读性 */ z-index: 1; /* 确保在内容区上层,但低于搜索框 */ } /* 字母项 - 适度缩小尺寸,避免超出容器 */ .index-item { width: 40px; /* 原50px → 缩小 */ height: 40px; /* 原50px → 缩小 */ display: flex; justify-content: center; align-items: center; font-size: 24px; /* 原28px → 缩小,保证清晰又不溢出 */ font-weight: bold; color: white; border-radius: 8px; cursor: pointer; transition: all 0.2s ease; background-color: rgba(255, 255, 255, 0.1); } .index-item:hover { background-color: #e8f4f8; color: #409eff; transform: scale(1.05); } .index-item.active { background-color: #409eff; color: #fff; font-weight: 600; transform: scale(1.05); } /* 内容区 - 保持原有样式 */ .contact-content { flex: 1; overflow-y: auto; border-radius: 8px; padding: 20px; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05); background-color: rgba(0, 0, 0, 0.05); /* 增加背景,区分区域 */ } /* 字母分组 - 原有样式 */ .letter-group { margin-bottom: 30px; } .letter-title { font-size: 18px; font-weight: 600; color: white; margin-bottom: 15px; padding-bottom: 8px; border-bottom: 1px solid #e9ecef; } /* 烟名列表 - 原有样式 */ .cigarette-list { display: flex; flex-wrap: wrap; gap: 12px; } .cigarette-item { margin-top: 15px; padding: 12px 24px; border-radius: 6px; font-size: 15px; color: white; cursor: pointer; transition: all 0.2s ease; white-space: nowrap; } .cigarette-item:hover { border-color: #409eff; transform: translateY(-2px); box-shadow: 0 2px 8px rgba(64, 158, 255, 0.1); } .cigarette-item:active { transform: translateY(0); } /* 空状态 */ .empty-state { display: flex; justify-content: center; align-items: center; height: 300px; color: #868e96; font-size: 16px; } /* 滚动条优化 */ .contact-content::-webkit-scrollbar { width: 8px; } .contact-content::-webkit-scrollbar-track { background-color: #f1f3f5; border-radius: 4px; } .contact-content::-webkit-scrollbar-thumb { background-color: #adb5bd; border-radius: 4px; transition: background-color 0.2s ease; } .contact-content::-webkit-scrollbar-thumb:hover { background-color: #868e96; } /* 响应式适配 - 大屏适度调整,避免遮挡 */ @media (min-width: 1200px) { .cigarette-item { padding: 14px 28px; font-size: 16px; } .letter-title { font-size: 20px; } .index-item { width: 45px; height: 45px; font-size: 26px; } .letter-index { width: 180px; grid-gap: 8px 12px; } } @media (min-width: 1600px) { .main-container { padding: 0 50px 30px; margin-top: 15px; } .cigarette-list { gap: 15px; } .letter-index { width: 200px; } .index-item { width: 50px; height: 50px; font-size: 28px; } } /* 图片样式 */ .cig-img { max-width: 100px; height: auto; display: block; margin: 0 auto; } </style>
最新发布
12-16
<template> <div class="activity-content"> <div class="one"> <div class="bx"> <div class="m_b-41"> <div class="title m_b-10">{{ $t(&#39;v2New69&#39;) }}</div> <div class="text">{{ $t(&#39;v2New70&#39;) }}</div> </div> <div class="item-content"> <div class="item m_b-16"> <div> <div class="text1 m_b-14">{{ $t(&#39;v2New71&#39;) }}</div> <div class="item-title m_b-14"> {{ &#39;$&#39; + $formatNumberToKMBTQ(userData.totalActivityReward) }} </div> <div class="number"> <div class="m_r-8">{{ $t(&#39;v2New72&#39;) }}</div> <div class="right"> {{ &#39;+&#39; + $truncToFixed(userData.last24hActivityReward, 2) }}<img class="w-13 h-13" src="@/assets/images/new/Arrow-up.png" /> </div> </div> </div> </div> <div class="item bgu"> <div> <div class="text1 m_b-14">{{ $t(&#39;v2New73&#39;) }}</div> <div class="item-title m_b-14"> {{ $formatNumberToKMBTQ(userData.userCount) }} </div> <div class="number"> <div class="m_r-8">{{ $t(&#39;v2New72&#39;) }}</div> <div class="right"> {{ &#39;+&#39; + $formatMoney(userData.last24hUserCount) + $t(&#39;v2New74&#39;) }} </div> </div> </div> </div> </div> </div> </div> <div class="carousel"> <div class="carousel-inner" :style="{ width: carouselWidth }"> <div class="item" v-for="(item, index) in extendedCarouselList" :key="index" :style="{ minWidth: itemWidth }" > <img src="@/assets/images/new/aaa.png" alt="" /> <div> {{ $t(&#39;v2New75&#39;) + item.nickname + $t(&#39;v2New76&#39;) }} <span>{{ $formatMoney($truncToFixed(item.rewardAmount, 2)) + &#39; USDT !&#39; }}</span> </div> </div> </div> </div> <div class="two"> <div class="bx gradientRamp-border"> <div class="top"> <img class="w-36 h-36 m_r-10" :src="user.avatar || defaultImgUrl" alt="" /> {{ user.nickname }} </div> <div class="bottom"> <div class="left"> <div class="f_a_i-center m_b-16"> <img class="w-20 h-20 m_r-10" src="@/assets/images/new/eeee.png" alt="" /> <div class="title">{{ $t(&#39;v2New77&#39;) }}</div> </div> <div class="title-money"> {{ $formatMoney($truncToFixed(user.totalUnclaimedAmount, 2)) + &#39; USDT&#39; }} </div> </div> <div class="middle left"> <div class="f_a_i-center m_b-16"> <img class="w-20 h-20 m_r-10" src="@/assets/images/new/Frame 2147223273.png" alt="" /> <div class="title">{{ $t(&#39;v2New78&#39;) }}</div> </div> <div class="underline text1"> {{ user.joinedOngoingActivityCount + $t(&#39;v2New79&#39;) }} </div> </div> <Button bR="12" guang fS="14" paddingLR="22" paddingTB="9" :text="$t(&#39;v2New80&#39;)" rightArrow @click="$router.push(&#39;/competition&#39;)" ></Button> </div> </div> </div> <div class="three"> <div class="bx"> <CommonVantTabs :list="tabsList" @tabsClick="handleClick"> <template #0> <Activity @updateActivityList="updateActivityList" :list="userData.availableActivityList" :marginTop="&#39;m_t-36&#39;" ></Activity> </template> <template #1> <Activity @updateActivityList="updateFinishList" :list="finish" :marginTop="&#39;m_t-36&#39;" ></Activity> <div class="p_t-20 f_j_c-center" ref="section" v-if="finish.length"> <div v-show="loadingDataShow" @click="loadingDataJia" class="loading-data" > {{ $t(&#39;v2New302&#39;) }} </div> <div v-show="!loadingDataShow" @click="loadingDataJian" class="loading-data" > {{ $t(&#39;v2New303&#39;) }} </div> <!-- <Pagination :current-page="page.pageNo" :page-size="page.pageSize" :pageSizes="[6, 12, 18]" :total-items="page.total" @current-change="handleCurrentChange" @size-change="handleSizeChange" /> --> </div> </template> </CommonVantTabs> </div> </div> <div class="four"> <div class="bx"> <div class="top"> <div class="title">{{ $t(&#39;v2New83&#39;) }}</div> <div class="right f_a_i-center" @click="$router.push(&#39;/flow&#39;)"> {{ $t(&#39;v2New84&#39;) }} <img class="w-24 h-24 m_l-10" src="@/assets/images/new/arrow-narrow-right-blue.png" alt="" /> </div> </div> <div class="bottom"> <div class="item"> <img src="@/assets/images/new/Frame 2147223269.png" alt="" /> <div class="step">Step 1</div> <div class="text"> {{ $t(&#39;v2New85&#39;) }}<br /> {{ $t(&#39;v2New86&#39;) }} </div> </div> <img class="w-36 h-36 right-arrow" src="@/assets/images/new/Double Alt Arrow Right.png" alt="" /> <div class="item"> <img class="i-2" src="@/assets/images/new/Frame 2147223270.png" alt="" /> <div class="step">Step 2</div> <div class="text"> {{ $t(&#39;v2New87&#39;) }}<br /> {{ $t(&#39;v2New88&#39;) }} </div> </div> <img class="w-36 h-36 right-arrow" src="@/assets/images/new/Double Alt Arrow Right.png" alt="" /> <div class="item"> <img class="i-3" src="@/assets/images/new/Frame 2147223271.png" alt="" /> <div class="step">Step 3</div> <div class="text"> {{ $t(&#39;v2New89&#39;) }}<br /> {{ $t(&#39;v2New90&#39;) }} </div> </div> <img class="w-36 h-36 right-arrow" src="@/assets/images/new/Double Alt Arrow Right.png" alt="" /> <div class="item"> <img class="i-4" src="@/assets/images/new/Frame 2147223272.png" alt="" /> <div class="step">Step 4</div> <div class="text"> {{ $t(&#39;v2New91&#39;) }} </div> </div> </div> </div> </div> <div class="five"> <div class="bx"> <div class="title2 m_b-10">{{ $t(&#39;v2New92&#39;) }}</div> <div class="text1 m_b-36">{{ $t(&#39;v2New93&#39;) }}</div> <div class="bottom"> <div class="box m_b-16"> <div class="top"> <div class="f_a_i-center"> <img class="w-23 h-24 m_r-4" src="@/assets/images/new/image.png" alt="" /> {{ $t(&#39;v2New94&#39;) }} </div> <div class="data">{{ $t(&#39;v2New95&#39;) }}</div> </div> <div class="list" v-show="userData.popularCryptoList.length"> <div class="list-item" v-for="(item, index) in userData.popularCryptoList" :key="index" > <div class="f_a_i-center"> <img class="w-24 h-24 m_r-10" style="border-radius: 50%;" :src="item.icon ? item.icon : defaultSymbolImgUrl" alt="" /> {{ item.code }} </div> <div class="value"> {{ &#39;$&#39; + $formatNumberToKMBTQ(item.tradingVolume) }} </div> </div> </div> <EmptyNoData v-show="!userData.popularCryptoList.length" ></EmptyNoData> </div> <div class="box box2"> <div class="top"> <div class="f_a_i-center"> <img class="w-23 h-24 m_r-4" src="@/assets/images/new/image 81.png" alt="" /> {{ $t(&#39;v2New96&#39;) }} </div> <div class="data">{{ $t(&#39;v2New97&#39;) }}</div> </div> <div class="list" v-show="userData.popularUserList.length"> <div class="list-item" v-for="(item, index) in userData.popularUserList" :key="index" > <div class="f_a_i-center"> <img class="w-36 h-36 m_r-10" :src="item.avatar || defaultImgUrl" alt="" /> {{ item.nickname }} </div> <div class="value" :style=" item.profitRate < 0 ? &#39;color: #FF4848;&#39; : &#39;color: #00D059;&#39; " > {{ (item.profitRate >= 0 ? &#39;+&#39; : &#39;&#39;) + $formatMoney($truncToFixed(item.profitRate, 2)) + &#39;%&#39; }} </div> </div> </div> <EmptyNoData v-show="!userData.popularUserList.length" ></EmptyNoData> </div> </div> </div> </div> </div> </template> <script> // import All from &#39;@/views/modules/activity/components/all&#39; // import My from &#39;@/views/modules/activity/components/my&#39; import { mapState } from &#39;vuex&#39; import { Button, Activity, Pagination, EmptyNoData, CommonVantTabs, } from &#39;@/components&#39; import { activityHomepageData, profile2, finishedActivities } from &#39;@/api/api&#39; export default { components: { Button, Activity, Pagination, EmptyNoData, CommonVantTabs }, data() { return { loadingDataShow: true, // activeName: &#39;first&#39;, userData: { userCount: 0, last24hUserCount: 0, totalActivityReward: 0, last24hActivityReward: 0, rewardFeedList: [], availableActivityList: [], popularCryptoList: [], popularUserList: [], }, tabsList: [ { title: this.$t(&#39;v2New81&#39;), value: &#39;0&#39;, }, { title: this.$t(&#39;v2New82&#39;), value: &#39;1&#39;, }, ], user: { email: &#39;&#39;, totalUnclaimedAmount: 0, active: 0, joinedOngoingActivityCount: 0, }, finish: [], page: { pageNo: 1, pageSize: 10, total: 0, }, } }, computed: { ...mapState([&#39;userInfo&#39;, &#39;language&#39;]), extendedCarouselList() { return [...this.userData.rewardFeedList, ...this.userData.rewardFeedList] // 重复数组 }, carouselWidth() { return `${this.extendedCarouselList.length * 270}px` // 根据实际项目宽度计算 }, itemWidth() { return this.language === &#39;en&#39; ? &#39;350px&#39; : &#39;270px&#39; // 每个项目的宽度 }, }, created() { if (this.userInfo.accessToken) { this.profile2() } this.activityHomepageData() }, methods: { handleClick(name) { if (name == 1) return this.finishedActivities() this.activityHomepageData() }, updateActivityList() { this.activityHomepageData() }, updateFinishList() { this.finishedActivities() }, async activityHomepageData() { try { const res = await activityHomepageData() this.userData = res.data } catch (error) {} }, loadingDataJia() { this.page.pageSize += 10 this.finishedActivities().then(() => { if (this.finish.length === this.page.total) { this.loadingDataShow = false } }) }, loadingDataJian() { this.page.pageSize = 10 this.loadingDataShow = true this.finishedActivities().then(() => { this.$refs.section.scrollIntoView({ behavior: &#39;smooth&#39; }); }) }, async finishedActivities() { try { const res = await finishedActivities({ pageNo: this.page.pageNo, pageSize: this.page.pageSize, }) this.finish = res.data this.page.total = res.total } catch (error) {} }, handleCurrentChange(val) { this.page.pageNo = val this.finishedActivities() }, handleSizeChange(val) { this.page.pageSize = val this.page.pageNo = 1 this.finishedActivities() }, async profile2() { try { const res = await profile2() this.user = res.data } catch (error) {} }, }, } </script> <style lang="scss" scoped> .activity-content { // padding-bottom: 100px; .bx { // width: 1200px; } .one { width: 100%; // height: 491px; box-sizing: border-box; background: url(&#39;@/assets/images/new/Frame 2147223274.png&#39;) no-repeat; background-size: 100% 100%; padding-top: 156px; // margin: 0 auto; padding-bottom: 38.53px; .bx { // width: 1200px; display: flex; flex-direction: column; align-items: center; // justify-content: space-between; // box-sizing: border-box; .title { // height: 73px; font-family: &#39;PingFang SC&#39;; font-size: 32px; font-style: normal; font-weight: 600; line-height: 100%; /* 40px */ background: linear-gradient( 180deg, #fff 0%, rgba(255, 255, 255, 0.7) 100% ); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; } .text { // height: 49px; font-family: &#39;PingFang SC&#39;; font-weight: 400; font-size: 14px; color: #c8c8d0; line-height: 18px; text-align: left; font-style: normal; text-transform: none; } .item-content { display: flex; flex-direction: column; align-items: center; } .item { position: relative; width: 347px; height: 169.235px; box-sizing: border-box; background: #0b0d21; border-radius: 10.181px; // border: 1px solid rgba(255, 255, 255, 0.12); padding: 30.5px; background: url(&#39;@/assets/images/new/Frame 2147223258.png&#39;) no-repeat; background-size: 100% 100%; .item-title { color: #fff; font-family: D-DIN; font-size: 44.117px; font-style: normal; font-weight: 700; // line-height: 100%; /* 52px */ } .number { display: flex; align-items: center; .left { color: #c8c8d0; font-family: &#39;PingFang SC&#39;; font-size: 12px; font-style: normal; font-weight: 400; line-height: normal; } .right { color: #00d059; font-family: D-DIN; font-size: 12px; font-style: normal; font-weight: 700; line-height: 140%; /* 19.6px */ display: flex; align-items: center; } } } .bgu { background: url(&#39;@/assets/images/new/Frame 2147223257.png&#39;) no-repeat; background-size: 100% 100%; } } } .carousel { overflow: hidden; width: 100%; height: 48px; box-sizing: border-box; background: rgba(255, 255, 255, 0.1); display: flex; align-items: center; .carousel-inner { display: flex; animation: slide 100s linear infinite; /* 根据需要调整速度 */ } @keyframes slide { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); /* 向左移动一半的宽度 */ } } .item { // min-width: 250px; /* 根据每个项的实际宽度进行调整 */ display: flex; align-items: center; // margin-left: 36px; img { width: 16px; height: 16px; margin-right: 4px; } div { color: #fff; font-family: &#39;PingFang SC&#39;; font-size: 12px; font-style: normal; font-weight: 400; line-height: normal; } span { color: #00d059; } } } .two { // padding: 100px 120px; padding-top: 39px; .gradientRamp-border { width: 347px; // height: 227px; margin: 0 auto; // box-sizing: border-box; background: #0b0d21; /* 背景颜色 */ padding: 24px 16px; border-radius: 12px; .top { position: relative; /* 确保内容在伪元素之上 */ z-index: 2; /* 确保内容在最上层 */ color: #fff; /* 确保文字颜色可见 */ padding-bottom: 24px; border-bottom: 1px solid rgba(255, 255, 255, 0.12); display: flex; align-items: center; font-family: &#39;PingFang SC&#39;; font-size: 14px; font-style: normal; font-weight: 400; line-height: 20px; /* 142.857% */ letter-spacing: 0.56px; img { border-radius: 50%; } } .bottom { position: relative; z-index: 2; padding-top: 24px; // display: flex; // justify-content: space-between; // align-items: center; .left { margin-bottom: 36px; .title { color: #c8c8d0; font-family: &#39;PingFang SC&#39;; font-size: 14px; font-style: normal; font-weight: 400; line-height: 20px; /* 125% */ letter-spacing: 0.56px; } .title-money { color: #fff; font-family: D-DIN; font-size: 36px; font-style: normal; font-weight: 700; line-height: 36px; /* 100% */ } } .middle { .underline { font-size: 16px; color: #3860ff; // text-decoration-line: underline; // text-decoration-style: solid; // text-decoration-skip-ink: none; // text-decoration-thickness: auto; // text-underline-offset: auto; // text-underline-position: from-font; // cursor: pointer; } } } } } .three { padding: 70px 0; } .four { .bx { // height: 451px; width: 347px; margin: 0 auto; background: #0b0d21; box-sizing: border-box; border-radius: 28px 28px 28px 28px; border: 1px solid rgba(255, 255, 255, 0.08); padding: 24px 16px; .top { display: flex; justify-content: space-between; align-items: center; // padding: 0 14px; margin-bottom: 10px; .title { font-family: &#39;PingFang SC&#39;; font-size: 20px; font-style: normal; font-weight: 600; line-height: 140%; /* 56px */ } .right { color: var(--primary-color); font-family: &#39;PingFang SC&#39;; font-size: 14px; font-style: normal; font-weight: 400; line-height: normal; cursor: pointer; } } .bottom { display: flex; flex-direction: column; align-items: center; .item { // width: 257px; // height: 285px; box-sizing: border-box; display: flex; flex-direction: column; // justify-content: space-between; align-items: center; img { width: 140px; height: 140px; // margin-bottom: 10px; } .i-2 { width: 145px; height: 191px; } .i-3 { width: 162px; height: 162px; } .i-4 { width: 176px; height: 176px; } .step { color: #c8c8d0; text-align: center; font-family: &#39;PingFang SC&#39;; font-size: 16px; font-style: normal; font-weight: 600; line-height: normal; margin-bottom: 10px; } .text { color: #c8c8d0; text-align: center; font-family: &#39;PingFang SC&#39;; font-size: 12px; font-style: normal; font-weight: 400; line-height: 20px; /* 166.667% */ margin-bottom: 16px; } } // .right-arrow { // margin-top: -20px; // } } } } .five { padding: 76px 0; .bx { display: flex; flex-direction: column; align-items: center; .title2 { background: linear-gradient( 180deg, #fff 0%, rgba(255, 255, 255, 0.7) 100% ); font-size: 32px; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; } .text1 { font-size: 14px; } .bottom { display: flex; flex-direction: column; align-items: center; .box { width: 347px; height: 607px; box-sizing: border-box; padding: 28px 0; border-radius: 25px; border: 1px solid rgba(255, 255, 255, 0.12); background: linear-gradient( 180deg, rgba(56, 96, 255, 0.2) 0%, rgba(1, 5, 16, 0) 40.15% ); .top { padding: 0 24px; width: 100%; // height: 56px; box-sizing: border-box; display: flex; justify-content: space-between; align-items: flex-end; color: #fff; font-family: &#39;PingFang SC&#39;; font-size: 20px; font-style: normal; font-weight: 600; line-height: 140%; /* 30.8px */ margin-bottom: 20px; .data { color: #c8c8d0; font-feature-settings: &#39;ss01&#39; on, &#39;cv01&#39; on, &#39;cv11&#39; on; font-family: &#39;PingFang SC&#39;; font-size: 12px; font-style: normal; font-weight: 400; line-height: 12px; /* 100% */ padding-top: 0px; } } .list { max-height: 480px; /* 设置最大高度 */ overflow-y: auto; /* 允许垂直滚动 */ padding: 0 24px; /* 隐藏滚动条 */ scrollbar-width: none; /* Firefox */ &::-webkit-scrollbar { display: none; /* Chrome, Safari 和 Opera */ } .list-item { width: 100%; height: 48px; box-sizing: border-box; color: #fff; font-family: &#39;PingFang SC&#39;; font-size: 14px; font-style: normal; font-weight: 400; line-height: 140%; /* 19.6px */ display: flex; align-items: center; justify-content: space-between; padding: 0 10px; .value { color: #fff; font-family: D-DIN; font-size: 14px; font-style: normal; font-weight: 700; line-height: 140%; /* 19.6px */ } img { border-radius: 50%; } } .list-item:hover { border-radius: 12px; background: rgba(255, 255, 255, 0.08); } } } .box2 { background: linear-gradient( 180deg, rgba(255, 86, 96, 0.2) 0%, rgba(1, 5, 16, 0) 40.15% ); .list-item { height: 56px !important; } } } } } // &.first-active { // background: url(&#39;@/assets/images/deal/bg@2x.png&#39;) no-repeat; // background-size: 100% 100%; // ::v-deep .el-tabs__header { // margin-left: 150px; // margin-right: 150px; // } // } // ::v-deep .el-tabs__nav-scroll { // display: flex; // justify-content: center; // } // ::v-deep .el-tabs__header { // margin-bottom: 50px; // } .loading-data { color: var(--primary-color); } } </style> <div class="carousel"> <div class="carousel-inner" :style="{ width: carouselWidth }"> <div class="item" v-for="(item, index) in extendedCarouselList" :key="index" :style="{ minWidth: itemWidth }" > <img src="@/assets/images/new/aaa.png" alt="" /> <div> {{ $t(&#39;v2New75&#39;) + item.nickname + $t(&#39;v2New76&#39;) }} <span>{{ $formatMoney($truncToFixed(item.rewardAmount, 2)) + &#39; USDT !&#39; }}</span> </div> </div> </div> </div>这一段滚动在手机端网页上不会滚动,只显示数据,而且过一会数据也不见了
10-22
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DingTalkLogin.aspx.cs" Inherits="biaoyang_DingTalkLogin" %> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> <title>标样管理</title> <script src=&#39;https://g.alicdn.com/code/npm/@ali/dingtalk-h5-remote-debug/0.1.3/index.js&#39;></script> <script src="https://g.alicdn.com/dingding/dingtalk-jsapi/2.10.3/dingtalk.open.js"></script> <style> * { margin: 0; padding: 0; box-sizing: border-box; font-family: &#39;Segoe UI&#39;, &#39;Microsoft YaHei&#39;, sans-serif; } body { background: linear-gradient(135deg, #1e5799 0%, #207cca 100%); min-height: 100vh; display: flex; justify-content: center; align-items: center; padding: 20px; position: relative; } /* 全屏容器样式 */ .fullscreen-container { position: fixed; top: 0; left: 0; width: 100%; height: 100%; display: flex; flex-direction: column; overflow: auto; } .container { background: white; border-radius: 16px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); width: 100%; max-width: 500px; margin: auto; overflow: hidden; text-align: center; position: relative; display: flex; flex-direction: column; min-height: calc(100vh - 40px); } .header { background: #06922a; color: white; padding: 10px 15px; position: relative; } .company-logo { width: 60px; height: 60px; background: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 10px; } .logo-text { color: #0086F6; font-weight: bold; font-size: 24px; } .header h1 { font-size: 22px; font-weight: 500; margin-bottom: 5px; } .subtitle { font-size: 24px; opacity: 0.9; letter-spacing: 1px; } .content { padding: 15px 15px; flex: 1; display: flex; flex-direction: column; justify-content: center; } .user-info { background: #f8fafc; border-radius: 12px; padding: 15px; margin: 10px 0; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); } .user-details { display: grid; grid-template-columns: auto 1fr; gap: 15px; text-align: left; margin-top: 20px; } .detail-label { font-weight: 600; color: #06922a; text-align: right; } .detail-value { color: #1e293b; font-weight: 500; } .user-avatar { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; border: 3px solid #0086F6; margin: 0 auto 15px; background-color: #e0e7ff; display: flex; align-items: center; justify-content: center; font-size: 32px; color: #4f46e5; } .loading-container { padding: 30px 0; } .loading-spinner { width: 50px; height: 50px; border: 5px solid rgba(0, 134, 246, 0.2); border-top: 5px solid #0086F6; border-radius: 50%; animation: spin 1s linear infinite; margin: 0 auto 20px; } .loading-text { color: #64748b; font-size: 16px; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .error-message { color: #ef4444; background: #fef2f2; padding: 15px; border-radius: 8px; margin: 20px 0; text-align: center; } /* 底部版权信息样式 - 固定在底部 */ .footer { padding: 15px; color: #64748b; font-size: 12px; background: rgba(255, 255, 255, 0.9); border-top: 1px solid #e2e8f0; position: sticky; bottom: 0; z-index: 10; text-align: center; box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.05); } /* 按钮美化 */ .btn { background: linear-gradient(135deg, #0086F6 0%, #0066cc 100%); color: white; border: none; border-radius: 10px; padding: 14px 25px; font-size: 17px; font-weight: 600; cursor: pointer; transition: all 0.3s ease; display: inline-block; margin: 20px 0 15px; width: 100%; max-width: 220px; box-shadow: 0 5px 15px rgba(0, 134, 246, 0.3); position: relative; overflow: hidden; } .btn:hover { background: linear-gradient(135deg, #0099ff 0%, #0077e6 100%); transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0, 134, 246, 0.4); } .btn:active { transform: translateY(0); box-shadow: 0 4px 10px rgba(0, 134, 246, 0.3); } .btn::after { content: &#39;&#39;; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(255, 255, 255, 0.2); transform: translateX(-100%); transition: transform 0.5s ease; } .btn:hover::after { transform: translateX(100%); } .btn-icon { display: inline-flex; align-items: center; justify-content: center; gap: 8px; } .btn-icon svg { width: 18px; height: 18px; fill: white; } .success-message { background: #f0fdf4; color: #15803d; padding: 15px; border-radius: 8px; margin: 20px 0; text-align: center; border: 1px solid #bbf7d0; } .info-box { background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 8px; padding: 15px; margin: 15px 0; text-align: left; } .info-box h3 { color: #0369a1; margin-bottom: 10px; font-size: 16px; } .info-box p { color: #0c4a6e; font-size: 14px; line-height: 1.5; } @media (max-width: 480px) { .container { border-radius: 0; max-width: 100%; height: 100%; } body { padding: 0; } .content { padding: 10px 15px; } .user-details { grid-template-columns: 1fr; gap: 8px; } .detail-label { text-align: left; } .btn { padding: 12px 20px; font-size: 16px; max-width: 100%; } } </style> </head> <body> <form id="form1" runat="server"> <div class="fullscreen-container"> <div class="container"> <div class="header"> <div class="subtitle">标样借用</div> </div> <div class="content"> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> </ContentTemplate> </asp:UpdatePanel> <div id="pnlLoading" class="loading-container"> <div class="loading-spinner"></div> <div class="loading-text">正在获取用户信息...</div> </div> <asp:HiddenField ID="hfDingTalkId" runat="server" /> <div id="pnlUserInfo" class="user-info" style="display:none;"> <div class="user-details"> <div class="detail-label" style="display:none">借用人:</div> <div class="detail-value" style="display:none"><asp:Label ID="userneme" runat="server" Text=""></asp:Label></div> <div class="detail-label">标样ID:</div> <div class="detail-value"><asp:Label ID="byid" runat="server" Text=""></asp:Label></div> <div class="detail-label">标样名称:</div> <div class="detail-value"><asp:Label ID="bymc" runat="server" Text=""></asp:Label></div> <div class="detail-label" style="display:none">钉钉ID:</div> <div class="detail-value" style="display:none" ><span id="userId"></span></div><%----%> <div class="detail-label">状态:</div> <div class="detail-value" runat="server"> <span class="success-message" style="display: inline-block; padding: 4px 0px; font-size: 13px; "> <asp:Label ID="sjjyr" runat="server" Text="Label"></asp:Label> <input id="uid" type="hidden" runat="server"/><%-- --%> </span> </div> </div> <!-- 美化后的按钮 --> <asp:Button ID="Button1" runat="server" Text="我要借用" OnClick="Button1_Click" CssClass="btn btn-icon" /> <asp:Button ID="Button2" runat="server" Text="归还" CssClass="btn btn-icon" OnClick="Button1_Click"/> </div> </div> <div id="pnlError" class="error-message" style="display:none;"></div> <button id="btnRefresh" class="btn btn-icon" style="display:none;"> <svg viewBox="0 0 24 24"> <path d="M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z"/> </svg> 重新获取 </button> </div> <!-- 固定在底部的版权信息 --> <div class="footer"> © 2025 标样管理 | 河北龙大包装制品有限公司 </div> </div> </div> </form> <script> // 初始化钉钉JSAPI const button1Id = &#39;<%= Button1.ClientID %>&#39;; const uidInputId = &#39;<%= uid.ClientID %>&#39;; dd.ready(function() { console.log(&#39;钉钉JSAPI已准备就绪&#39;); // 获取免登授权码 dd.runtime.permission.requestAuthCode({ corpId: &#39;<%= GetCorpId() %>&#39;, onSuccess: function(result) { console.log(&#39;获取到免登授权码:&#39;, result.code); getUserInfo(result.code); }, onFail: function(err) { showError(&#39;获取授权码失败: &#39; + JSON.stringify(err)); } }); }); dd.error(function(error) { console.error(&#39;钉钉JSAPI错误:&#39;, error); showError(&#39;钉钉环境初始化失败: &#39; + JSON.stringify(error)); }); // 获取用户信息 function getUserInfo(authCode) { fetch(&#39;<%= ResolveUrl("DingTalkLogin.aspx/GetUserInfo") %>&#39;, { method: &#39;POST&#39;, headers: { &#39;Content-Type&#39;: &#39;application/json&#39; }, body: JSON.stringify({ code: authCode }) }) .then(response => { if (!response.ok) { throw new Error(&#39;网络响应异常: &#39; + response.status); } return response.json(); }) .then(data => { if (data.d && data.d.success) { displayUserInfo(data.d.userInfo); updateUserDetails(data.d.userInfo); } else { showError(data.d.error || &#39;获取用户信息失败&#39;); } }) .catch(error => { showError(&#39;请求失败: &#39; + error); }); } // 显示用户信息 function displayUserInfo(userInfo) { document.getElementById(&#39;pnlLoading&#39;).style.display = &#39;none&#39;; document.getElementById(&#39;pnlUserInfo&#39;).style.display = &#39;block&#39;; document.getElementById(&#39;userneme&#39;).innerText = userInfo.name; document.getElementById(&#39;userId&#39;).innerText = userInfo.userid || userInfo.unionid; //// 显示用户头像首字母 //if (document.getElementById(&#39;userId&#39;).innerText == document.getElementById(&#39;uid&#39;).innerText) { //document.getElementById(&#39;Button1&#39;).style.display = &#39;none&#39;; // } // 模拟标样ID(实际项目中应从后端获取) // document.getElementById(&#39;Label2&#39;).innerText = &#39;BY&#39; + Math.floor(1000 + Math.random() * 9000); document.getElementById(&#39;<%= hfDingTalkId.ClientID %>&#39;).value = userInfo.userid || userInfo.unionid; const currentUserId = (userInfo.userid || userInfo.unionid || "").toString().trim(); const storedUid = document.getElementById(uidInputId).value.trim(); console.log("Comparing IDs:", currentUserId, "vs", storedUid); if (currentUserId === storedUid) { document.getElementById(button1Id).style.display = &#39;none&#39;; console.log("Button hidden"); } else { document.getElementById(button1Id).style.display = &#39;block&#39;; } } // 更新用户详细信息 function updateUserDetails(userInfo) { // 在实际应用中,这里可以添加更多用户信息的处理 console.log(&#39;用户详细信息:&#39;, userInfo); } // 显示错误信息 function showError(message) { document.getElementById(&#39;pnlLoading&#39;).style.display = &#39;none&#39;; const errorPanel = document.getElementById(&#39;pnlError&#39;); errorPanel.style.display = &#39;block&#39;; errorPanel.innerText = message; // 显示刷新按钮 document.getElementById(&#39;btnRefresh&#39;).style.display = &#39;inline-block&#39;; } // 刷新页面 document.getElementById(&#39;btnRefresh&#39;).addEventListener(&#39;click&#39;, function() { location.reload(); }); // 检测是否在钉钉环境中 function isInDingTalk() { return navigator.userAgent.toLowerCase().indexOf(&#39;dingtalk&#39;) !== -1; } // 如果不在钉钉环境中显示提示 if (!isInDingTalk()) { document.addEventListener(&#39;DOMContentLoaded&#39;, function() { showError(&#39;请在钉钉客户端内打开此页面&#39;); }); } // 添加响应式调整 window.addEventListener(&#39;resize&#39;, function() { const container = document.querySelector(&#39;.container&#39;); if (window.innerWidth < 480) { container.style.borderRadius = &#39;0&#39;; container.style.maxWidth = &#39;100%&#39;; } else { container.style.borderRadius = &#39;16px&#39;; container.style.maxWidth = &#39;500px&#39;; } }); </script> </body> </html> 手机端显示出现了右侧滑块,请设置全屏,不要滑块
11-24
基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究(Matlab代码实现)内容概要:本文围绕“基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究”,介绍了利用Matlab代码实现配电网可靠性的仿真分析方法。重点采用序贯蒙特卡洛模拟法对配电网进行长时间段的状态抽样与统计,通过模拟系统元件的故障与修复过程,评估配电网的关键可靠性指标,如系统停电频率、停电持续时间、负荷点可靠性等。该方法能够有效处理复杂网络结构与设备时序特性,提升评估精度,适用于含分布式电源、电动汽车等新型负荷接入的现代配电网。文中提供了完整的Matlab实现代码与案例分析,便于复现和扩展应用。; 适合人群:具备电力系统基础知识和Matlab编程能力的高校研究生、科研人员及电力行业技术人员,尤其适合从事配电网规划、运行与可靠性分析相关工作的人员; 使用场景及目标:①掌握序贯蒙特卡洛模拟法在电力系统可靠性评估中的基本原理与实现流程;②学习如何通过Matlab构建配电网仿真模型并进行状态转移模拟;③应用于含新能源接入的复杂配电网可靠性定量评估与优化设计; 阅读建议:建议结合文中提供的Matlab代码逐段调试运行,理解状态抽样、故障判断、修复逻辑及指标统计的具体实现方式,同时可扩展至不同网络结构或加入更多不确定性因素进行深化研究。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值