Browse Source

优化supply.html页面布局和iOS端滑动问题

Boss3
Default User 1 month ago
parent
commit
9112640afc
  1. 215
      supply.html

215
supply.html

@ -12,8 +12,8 @@
background-color: #f5f5f5;
color: #333;
font-size: 14px;
touch-action: none;
overflow: hidden;
overflow-x: hidden;
touch-action: pan-y;
}
.container {
@ -21,56 +21,171 @@
margin: 0 auto;
background-color: #fff;
min-height: 100vh;
overflow-x: hidden;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
}
/* 标题栏 */
/* 顶部标题栏样式优化 */
.title-bar {
background-color: #1677ff;
color: white;
padding: 15px 20px;
padding: 15px 15px;
display: flex;
justify-content: space-between;
align-items: center;
position: sticky;
top: 0;
z-index: 100;
flex-wrap: wrap;
gap: 10px;
}
.title-bar h1 {
margin: 0;
font-size: 18px;
font-weight: 500;
flex: 1;
text-align: center;
}
.title-bar-actions {
display: flex;
gap: 10px;
gap: 8px;
align-items: center;
}
.title-bar-actions button {
background-color: rgba(255, 255, 255, 0.2);
color: white;
border: none;
padding: 8px 16px;
padding: 8px 12px;
border-radius: 4px;
font-size: 14px;
font-size: 13px;
cursor: pointer;
transition: background-color 0.3s;
white-space: nowrap;
}
.title-bar-actions button:hover {
background-color: rgba(255, 255, 255, 0.3);
}
/* 搜索框 */
/* 登录用户信息样式 */
#currentUserInfo {
margin-top: 10px;
font-size: 12px;
color: #666;
text-align: right;
padding: 0 15px;
}
/* 搜索框样式优化 */
.search-container {
padding: 15px 20px;
padding: 15px;
background-color: white;
border-bottom: 1px solid #f0f0f0;
}
/* 创建货源按钮样式优化 */
.create-supply-btn {
margin: 20px 15px;
text-align: center;
}
.create-supply-btn button {
background-color: #07c160;
color: white;
border: none;
padding: 14px 40px;
border-radius: 25px;
font-size: 16px;
cursor: pointer;
transition: background-color 0.3s;
width: 100%;
max-width: 300px;
}
/* 货源列表样式优化 */
.supply-section {
margin: 15px;
background-color: white;
border-radius: 12px;
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
overflow: hidden;
}
/* 响应式样式 */
@media (max-width: 768px) {
/* 调整标题栏 */
.title-bar {
padding: 12px 10px;
}
.title-bar h1 {
font-size: 16px;
}
.title-bar-actions button {
padding: 6px 10px;
font-size: 12px;
}
/* 调整搜索框 */
.search-container {
padding: 10px;
}
/* 调整创建货源按钮 */
.create-supply-btn {
margin: 15px 10px;
}
.create-supply-btn button {
padding: 12px 30px;
font-size: 15px;
}
/* 调整货源列表 */
.supply-section {
margin: 10px;
}
.section-header {
padding: 12px 15px;
}
.supply-item {
padding: 15px;
flex-direction: column;
gap: 15px;
}
.supply-images {
width: 100%;
height: 150px;
}
}
/* 小屏幕手机的额外调整 */
@media (max-width: 480px) {
.title-bar {
flex-direction: column;
align-items: stretch;
gap: 8px;
}
.title-bar h1 {
order: -1;
text-align: center;
}
.title-bar-actions {
justify-content: space-around;
}
}
/* 搜索框 */
.search-box {
position: relative;
background-color: #f5f5f5;
@ -100,36 +215,6 @@
cursor: pointer;
}
/* 创建货源按钮 */
.create-supply-btn {
margin: 20px;
text-align: center;
}
.create-supply-btn button {
background-color: #07c160;
color: white;
border: none;
padding: 12px 40px;
border-radius: 20px;
font-size: 16px;
cursor: pointer;
transition: background-color 0.3s;
}
.create-supply-btn button:hover {
background-color: #06b158;
}
/* 货源列表 */
.supply-section {
margin: 20px;
background-color: white;
border-radius: 12px;
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
overflow: hidden;
}
.section-header {
padding: 16px 20px;
display: flex;
@ -2416,53 +2501,25 @@
// 阻止iOS端触摸拖动
function preventIOSDrag() {
document.addEventListener('touchstart', function(e) {
// 仅在垂直方向上阻止默认行为
// 只阻止水平滑动,允许垂直滚动
document.addEventListener('touchmove', function(e) {
// 只处理单点触摸
if (e.touches.length === 1) {
// 计算滑动方向
const touch = e.touches[0];
const startX = touch.clientX;
const startY = touch.clientY;
const deltaX = touch.clientX - (window.lastTouchX || touch.clientX);
const deltaY = touch.clientY - (window.lastTouchY || touch.clientY);
function handleTouchMove(e) {
const touch = e.touches[0];
const deltaX = touch.clientX - startX;
const deltaY = touch.clientY - startY;
// 检测是否为垂直拖动
if (Math.abs(deltaY) > Math.abs(deltaX)) {
// 检查目标元素是否为可滚动元素
const target = e.target;
let isScrollable = false;
let currentElement = target;
while (currentElement) {
const style = window.getComputedStyle(currentElement);
if (style.overflowY === 'auto' || style.overflowY === 'scroll' ||
style.overflow === 'auto' || style.overflow === 'scroll') {
const rect = currentElement.getBoundingClientRect();
if (currentElement.scrollHeight > rect.height) {
isScrollable = true;
break;
}
}
currentElement = currentElement.parentElement;
}
// 更新上次触摸位置
window.lastTouchX = touch.clientX;
window.lastTouchY = touch.clientY;
// 如果不是可滚动元素,则阻止默认行为
if (!isScrollable) {
// 检测是否为水平滑动
if (Math.abs(deltaX) > Math.abs(deltaY)) {
// 阻止水平滑动
e.preventDefault();
}
}
}
function handleTouchEnd() {
document.removeEventListener('touchmove', handleTouchMove, { passive: false });
document.removeEventListener('touchend', handleTouchEnd);
}
document.addEventListener('touchmove', handleTouchMove, { passive: false });
document.addEventListener('touchend', handleTouchEnd);
}
}, { passive: false });
}

Loading…
Cancel
Save