mervenoyan's picture
commit files to HF hub
d8760c5
function createPhotoScroller(){
var base_path = 'img/woman_washing_clothes.jpeg'
var data = [
{
'path': 'img/labels_1.svg',
'alt': 'Image of a woman washing clothes with bounding boxes including \'person\', and \'bucket\'',
'x': 198,
'y': 30,
'width': 305,
'height': 400,
},
{
'path': 'img/labels_4.svg',
'alt': 'Image of a woman washing clothes with bounding boxes including \'parent\', and \'laundry\'',
'x': 110,
'y': 60,
'width': 450,
'height': 470,
},
{
'path': 'img/labels_2.svg',
'alt': 'Image of a woman washing clothes with bounding boxes including \'hair_boho\', and \'decor_outdoor_rustic\'',
'x': 198,
'y': -35,
'width': 395,
'height': 500
},
{
'path': 'img/labels_3.svg',
'alt': 'Image of a woman washing clothes with one bounding box around her, labeled \'pedestrian\'',
'x': 190,
'y': 65,
'width': 190,
'height': 315
},
];
var photoIndex = 0;
var c = d3.conventions({
sel: d3.select('.person-photos').html(''),
height: 550
})
var photoSel = c.svg.append('svg:image')
.attr('x', 50)
.attr('y', 50)
.attr('width', 700)
.attr('height', 500)
.attr('xlink:href', base_path)
var photoSel = c.svg.appendMany('svg:image', data)
.attr('x', d => d.x)
.attr('y', d => d.y)
.attr('width', d => d.width)
.attr('height', d => d.height)
.attr('xlink:href', d => d.path)
.attr('alt', d => d.alt)
var buttonHeight = 35
var buttonWidth = 130
var buttonSel = c.svg.appendMany('g.photo-button', data)
.translate((d,i) => [(i * 170) + 100, 0])
.at({
// class: "dropdown"
})
.on('click', function(d, i){
photoIndex = i
setActiveImage()
timer.stop();
})
buttonSel.append('rect')
.at({
height: buttonHeight,
width: buttonWidth,
// fill: '#fff'
})
buttonSel.append('text')
.at({
textAnchor: 'middle',
// dominantBaseline: 'central',
dy: '.33em',
x: buttonWidth/2,
y: buttonHeight/2,
class: "monospace"
})
.text((d,i) => 'ground truth ' + (i + 1))
// buttonSel.classed('dropdown', true);
if (window.__photoPersonTimer) window.__photoPersonTimer.stop()
var timer = window.__photoPersonTimer = d3.interval(() => {
photoIndex = (photoIndex + 1) % data.length;
setActiveImage()
}, 2000)
function setActiveImage(i){
photoSel.st({opacity: (d, i) => i == photoIndex ? 1 : 0 })
buttonSel.classed('is-active-button', (d, i) => i == photoIndex)
}
setActiveImage()
}
createPhotoScroller();