body { margin: 0; padding: 0; height: 100vh; display: flex; overflow: hidden; } .background-container { position: relative; flex: 1; height: 100vh; background-image: url('../images/background.png'); background-position: center; background-repeat: no-repeat; background-size: contain; z-index: 1; } .control-panel { width: 200px; background-color: #fff; border-left: 1px solid #ccc; padding: 20px; height: 100vh; box-sizing: border-box; z-index: 2; overflow-y: auto; } .control-section { margin-bottom: 30px; } .control-section h3 { margin-top: 0; padding-bottom: 10px; border-bottom: 1px solid #eee; } .image-selector { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 15px; } .image-btn { width: 70px; height: 70px; border: 2px solid #ddd; border-radius: 4px; cursor: pointer; background-size: contain; background-repeat: no-repeat; background-position: center; transition: all 0.2s; } .image-btn:hover { border-color: #4CAF50; transform: scale(1.05); } .image-btn:active { transform: scale(0.98); } .arrow-container { position: absolute; pointer-events: auto; } .arrow-image { width: 155px; height: 173px; background-size: contain; background-repeat: no-repeat; cursor: move; } .save-btn { width: 100%; padding: 10px; background-color: #4CAF50; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 16px; margin-top: 20px; } .save-btn:hover { background-color: #45a049; } .arrow-text { position: absolute; top: '100%'; left: '50%'; transform: translateX(-50%); margin-top: '-5px'; font-weight: bold; color: red; font-size: 16px; white-space: nowrap; text-align: center; width: 100%; background-color: transparent; padding: 3px 8px; border-radius: 4px; } #contextMenu { position: absolute; display: none; background: white; border: 1px solid #ccc; padding: 5px; z-index: 9999; } #deleteArrow { padding: 3px 10px; cursor: pointer; } .menu-separator { height: 1px; background-color: #ccc; margin: 5px 0; } .menu-item { padding: 3px 10px; cursor: pointer; } .menu-item:hover { background-color: #f0f0f0; } .check-mark { display: inline-block; width: 16px; text-align: center; } .center-dot { position: absolute; width: 8px; height: 8px; background: red; border-radius: 50%; transform: translate(-50%, -50%); pointer-events: none; z-index: 5; } .center-dot { position: absolute; width: 16px; height: 16px; background-color: #ff0000; /* 保持中心红色 */ border-radius: 50%; transform: translate(-50%, -50%); cursor: pointer; /* 将红色阴影改为黄色阴影 */ box-shadow: 0 0 5px rgba(255, 215, 0, 0.8), 0 0 10px rgba(255, 215, 0, 0.6); animation: pulse 2s infinite ease-in-out; } /* 修改发光动画关键帧颜色 */ @keyframes pulse { 0% { box-shadow: 0 0 5px rgba(255, 215, 0, 0.8), 0 0 10px rgba(255, 215, 0, 0.6); } 50% { box-shadow: 0 0 10px rgba(255, 215, 0, 1), 0 0 20px rgba(255, 215, 0, 0.8), 0 0 30px rgba(255, 215, 0, 0.6); } 100% { box-shadow: 0 0 5px rgba(255, 215, 0, 0.8), 0 0 10px rgba(255, 215, 0, 0.6); } }