Changeset 37466


Ignore:
Timestamp:
2023-03-12T17:12:26+13:00 (14 months ago)
Author:
davidb
Message:

Added in text window that can be zoomed and dragged

Location:
gs3-extensions/tabletop-dl/trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • gs3-extensions/tabletop-dl/trunk/tabletop-interact.js

    r37465 r37466  
    112112
    113113
     114    var $drag_and_zoom_elems = $('.drag-and-zoom');
     115
     116    $drag_and_zoom_elems.each(function(index) {
     117
     118    let this_elem = this;
     119    let $this_elem = $(this_elem);
     120   
     121    let angleScale = {
     122        angle: 0,
     123        scale: 1
     124    }
     125    let gestureArea = document.getElementById('gesture-area')
     126    let scaleElement = document.getElementById('scale-element')
     127    //let resetTimeout
    114128
    115129
    116 
    117 
    118    
    119 
    120     var angleScale = {
    121     angle: 0,
    122     scale: 1
    123     }
    124     var gestureArea = document.getElementById('gesture-area')
    125     var scaleElement = document.getElementById('scale-element')
    126     //var resetTimeout
    127    
    128     interact(gestureArea)
    129     .gesturable({
    130         listeners: {
    131         start (event) {
    132             angleScale.angle -= event.angle
    133            
    134             //clearTimeout(resetTimeout)
    135             //scaleElement.classList.remove('reset')
    136         },
    137         move (event) {
    138             // document.body.appendChild(new Text(event.scale))
    139             var currentAngle = event.angle + angleScale.angle
    140             var currentScale = event.scale * angleScale.scale
    141            
    142             scaleElement.style.transform =
    143             'rotate(' + currentAngle + 'deg)' + 'scale(' + currentScale + ')'
    144            
    145             // uses the dragMoveListener from the draggable demo above
    146             dragMoveListener(event)
    147         },
    148         end (event) {
    149             angleScale.angle = angleScale.angle + event.angle
    150             angleScale.scale = angleScale.scale * event.scale
    151            
    152             //resetTimeout = setTimeout(reset, 1000)
    153             //scaleElement.classList.add('reset')
     130    //let gesture_areas_col = interact('.drag-and-zoom');
     131    //console.log(gesture_areas_col);
     132   
     133    //let gesture_area = interact(gestureArea)
     134    //console.log(gesture_area);
     135   
     136    // interact(gestureArea)
     137    //gesture_area
     138    //gesture_areas_col
     139    interact(this_elem)
     140        .gesturable({
     141        listeners: {
     142            start (event) {
     143            angleScale.angle -= event.angle
     144           
     145            //clearTimeout(resetTimeout)
     146            //scaleElement.classList.remove('reset')
     147            },
     148            move (event) {
     149            // document.body.appendChild(new Text(event.scale))
     150            let currentAngle = event.angle + angleScale.angle
     151            let currentScale = event.scale * angleScale.scale
     152            //console.log(this);
     153           
     154            //scaleElement.style.transform =
     155            let this_scale_elem = $(this_elem).find('.scale-element')[0];
     156           
     157            this_scale_elem.style.transform =           
     158                'rotate(' + currentAngle + 'deg)' + 'scale(' + currentScale + ')'
     159           
     160            // uses the dragMoveListener from the draggable demo above
     161            dragMoveListener(event)
     162            },
     163            end (event) {
     164            angleScale.angle = angleScale.angle + event.angle
     165            angleScale.scale = angleScale.scale * event.scale
     166           
     167            //resetTimeout = setTimeout(reset, 1000)
     168            //scaleElement.classList.add('reset')
     169            }
    154170        }
    155         }
    156     })
    157     .draggable({
    158         inertia: true,
    159         modifiers: [
    160         interact.modifiers.restrictRect({
    161             restriction: 'parent',
    162             endOnly: true
    163         })
    164         ],
    165         listeners: { move: dragMoveListener }
    166     })
     171        })
     172        .draggable({
     173        inertia: true,
     174        modifiers: [
     175            interact.modifiers.restrictRect({
     176            restriction: 'parent',
     177            endOnly: true
     178            })
     179        ],
     180        listeners: { move: dragMoveListener }
     181        })
     182    });
    167183   
    168184
  • gs3-extensions/tabletop-dl/trunk/tabletop.css

    r37464 r37466  
     1:root {
     2    --gs-fg-primary-col: #fff;
     3    --gs-bg-primary-col: #29e;
     4}
     5
     6
    17html {
    28    background: #102010 url(backgrounds/unsplash--dark-green-fern--overview.jpg) no-repeat center center fixed;
     
    1521body {
    1622    font-family: Helvetica, Arial, "Open Sans", OpenSans, sans-serif;
    17     color: #fff;
     23    color: var(--gs-fg-primary-col);
    1824}
    1925
     
    2733
    2834/* construction lines to help show what is going on */
     35/*
    2936.box .row {
    3037    border: 1px dotted #0313fc;
    3138}
     39*/
    3240
    3341.box .row.header {
     
    4553#gs-header {
    4654    height: 2.5rem;
    47     color: white;
     55    color: var(--gs-fg-primary-col);
    4856    background: linear-gradient(to right, rgba(13, 17, 22, 0.64), rgba(17, 21, 28, 0.64));
    4957    text-align: center;
     
    5462    left: 10px;
    5563    bottom: 10px;
    56     background-color: #000040;
     64    background-color: var(--gs-bg-primary-col);
    5765}
    5866
    5967
     68/*
    6069#fixed-height {
    6170    height: 40px;
     
    7281    width: 100%;
    7382}
     83*/
    7484
    7585
    7686.info-window {
    77     width: 25%;
    7887    min-height: 6.5em;
    79     /* margin: 1rem 0 0 1rem; */
    8088    margin: 0.5em;
    8189   
    82     background-color: #29e;
    83     color: white;
     90    background-color: var(--gs-bg-primary-col);
     91    color: var(--gs-fg-primary-col);
    8492   
    8593    font-size: 1.2rem;
    86     /* font-family: sans-serif; */
    8794
    8895    border-radius: 0.6em;
    89     /*padding: 4%; */
    9096    padding: 1em;
    9197
    9298    touch-action: none;
    93     user-select: none;
     99    user-select:  none;
    94100    transform: translate(0px, 0px);
    95101
     
    116122.button {
    117123    display: inline-block;
    118     background-color: #0050ff;
    119     color: #fff;
     124    background-color: var(--gs-bg-primary-col);
     125    color: var(--gs-fg-primary-col);;
    120126    width: auto;
    121127    border-radius: 10px;
  • gs3-extensions/tabletop-dl/trunk/tabletop.html

    r37465 r37466  
    4242    <div style="position: relative; width: 100%; height: 100%;">
    4343
    44       <div id="gs-open-home" class="button"
    45            style="position: absolute; left: 10px; bottom: 10px; background-color: #004000"
    46            onclick="gsToggleHeader()">Open DL Home</div>
     44      <div id="gs-open-home" class="button" onclick="gsToggleHeader()">Toggle Control Bar</div>
    4745     
    4846
    49       <div id="gesture-area" style="position: absolute; left: 700px; top: 30px; width: 576px; height: 384px;">
    50         <img src="backgrounds/unsplash--matrix-like-binary.jpg"
     47      <div id="gesture-area" class="drag-and-zoom"
     48           style="position: absolute; left: 700px; top: 30px; width: 576px; height: 384px;">
     49        <img class="info-window scale-element" src="backgrounds/unsplash--matrix-like-binary.jpg"
    5150         style="width: 576px; height: 384px"
    5251         id="scale-element" />
    5352      </div>
    5453     
    55       <div id="info-window-id" class="info-window resize-drag">
    56         <p> You can drag one element </p>
     54      <div id="info-window-id" class="info-window resize-drag" style="width: 400px;">
     55        <p> You can Drag and Resize this element </p>
    5756        <p>Goto <a href="https://greenstone.org/">Greenstone3 Project Home Page</a></p>
    5857        <p>
     
    6160          </form>
    6261        </p>
     62      </div>
     63
     64      <div class="drag-and-zoom"
     65           style="position: absolute; left: 300px; top: 430px; width: 400px;">
     66        <div class="info-window scale-element" style="width: 100%">
     67          <p>You can Drag and Zoom this element </p>
     68          <p>Goto <a href="https://greenstone.org/">Greenstone3 Project Home Page</a></p>
     69          <p>
     70        <form>
     71          <input type="text" />
     72        </form>
     73          </p>
     74        </div>
    6375      </div>
    6476     
Note: See TracChangeset for help on using the changeset viewer.